SQL Anywhere正则表达式语法与示例(3)

[[:blank:]] 等效于 [ \t]。

   
[:cntrl:]   匹配顺序值小于 32 或字符值为 127 的 ASCII 字符(控制字符)。控制字符包括换行符、换页符、退格符,等等。    
[:graph:]   匹配打印字符。

[[:graph:]] 等效于 [[:alnum:][:punct:]]。

   
[:print:]   匹配打印字符和空格。

[[:print:]] 等效于 [[:graph:][:whitespace:]]。

   
[:punct:]   匹配其中一个字符: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~.

[:punct:] 子字符类不能包括当前归类中可用的非 ASCII 标点字符。

   
[:word:]   匹配当前归类中的字母、数字或下划线字符。

[[:word:]] 等效于 [[:alnum:]_]。

   
[:xdigit:]   匹配字符类 [0-9A-Fa-f] 中的字符。    

正则表达式:所支持的其它语法约定

REGEXP 搜索条件和 REGEXP_SUBSTR 函数支持以下语法约定,同时它们假定反斜线为转义字符。而 SIMILAR TO 搜索表达式不支持这些约定。

正则表达式语法 名称和含义
\0xxx   匹配值为 \0xxx 的字符,其中 xxx 是任何八进制数字序列,0 是零。例如,\0134 匹配反斜线。  
\a   匹配报警字符。  
\A   用在字符集外部以便匹配字符串的开头。

等效于在字符集外部使用的 ^。

 
\b   匹配退格字符。  
\B   匹配反斜线字符 (\)。  
\cX   匹配已命名的控制字符。例如,\cZ 代表 ctrl-Z。  
\d   匹配当前归类中的一个数字。例如,以下语句搜索 Contacts.Phone 以查找以 00 结尾的所有电话号码: SELECT Surname, Surname, City, Phone FROM Contacts WHERE Phone REGEXP '\\d{8}00';    

\d 既可用在字符类的内部也可用在字符类的外部,等效于 [[:digit:]]。

 
\D   匹配数字以外的任何字符。它的作用与 \d 正好相反。

\D 既可用在字符类的内部也可用在字符类的外部,等效于 [^[:digit:]]。

在方括号内使用取非速记时请务必谨慎。[\D\S] 与 [^\d\s] 并不相同。后者匹配数字或空格以外的任何字符。所以它匹配 x,但不匹配 8。而前者匹配不是数字或不是空格(满足两个条件之一)的任何字符。因为数字不是空格,空格也不是数字,所以 [\D\S] 可以匹配任何字符、数字、空格或其它字符。

 
\e   匹配转义字符。  
\E   将由 \Q 启动的将元字符视为非元字符这一功能停止。

有关正则表达式元字符的列表,请参见。

 
\f   匹配换页符。  
\n   匹配换行符。  
\Q   将所有元字符视为非元字符,直到遇到 \E。例如,\Q[$\E 等效于 \[\$。

有关正则表达式元字符的列表,请参见。

 
\r   匹配回车符。  
\s   匹配一个被视为白空格的空格或字符。例如,以下语句从 Products.ProductName 中返回名称中至少有一个空格的所有产品名: SELECT Name FROM Products WHERE Name REGEXP '.*\\s.*'    

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfgpd.html