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

{m} 匹配某个字符正好 m 次。例如,'519-[0-9]{3}-[0-9]{4}' 匹配 519 地区号中的一个电话号码(假定数据按语法中定义的方式进行格式设置)。

{m,} 匹配某个字符至少 m 次。例如,'[0-9]{5,}' 匹配任何含有五个或更多数字的字符串。

{m,n} 匹配某个字符至少 m 次,但不超过 n 次。例如,SIMILAR TO '_{5,10}' 匹配任何含有 5 到 10(含 5 和 10)个字符的字符串。

 
\   反斜线被用作元字符的转义字符。它也可被用于转义非元字符。  
^   对于 REGEXP 和 REGEXP_SUBSTR,当脱字符在字符类的外部时,脱字符匹配字符串的开头字符。例如,'^[hc]at' 匹配 hat 和 cat,但只在字符串的开头。

当用在字符类内部时,以下行为适用:

REGEXP 和 REGEXP_SUBSTR 当脱字符为字符类中的第一个字符时,它与字符集中字符以外的任何字符匹配。例如,REGEXP '[^abc]' 匹配 a、b 或 c 以外的任何字符。

如果脱字符不是方括号内的第一个字符,那么它匹配脱字符。例如,REGEXP_SUBSTR '[a-e^c]' 匹配 a、b、c、d、e 和 ^。

SIMILAR TO 对于 SIMILAR TO,脱字符被视作减号运算符。例如,SIMILAR TO '[a-e^c]' 匹配 a、b、d 和 e。

 
$   当与 REGEXP 和 REGEXP_SUBSTR 一起使用时,匹配字符串的结尾字符。例如,SIMILAR TO 'cat$' 匹配 cat,但不匹配 catfish。

当与 SIMILAR TO 一起使用时,它匹配问号。

 
.   当与 REGEXP 和 REGEXP_SUBSTR 一起使用时,匹配任何单个字符。例如,REGEXP 'a.cd' 匹配以 a 开头并以 cd 结尾的含有四个字符的任何字符串。

当与 SIMILAR TO 一起使用时,它匹配句点 (.)。

 
:   在字符集中使用冒号来指定子字符类。例如,'[[:alnum:]]'。  

正则表达式:特殊子字符类

子字符类是嵌入到较大字符类中的特殊字符类。除了自定义字符类(在其中定义要匹配的字符集,例如,[abxq4] 将匹配字符集限制为 a、b、x、q 和 4)以外,SQL Anywhere 还支持子字符类,例如,大部分 POSIX 字符类。例如,[[:alpha:]] 表示所有大写和小写字母的集合。

REGEXP 搜索条件和 REGEXP_SUBSTR 函数支持下表中的所有语法约定,但 SIMILAR TO 搜索表达式不支持。SIMILAR TO 支持的约定在 SIMILAR TO 列中有一个 Y。

在 REGEXP 中,当使用 REGEXP_SUBSTR 函数时,可以使用脱字符对子字符类取非。例如,[[:^alpha:]] 匹配除字母字符以外的所有字符的集合。

子字符类 其它信息 SIMILAR TO
[:alpha:]   匹配当前归类中的大写和小写字母字符。例如,'[0-9]{3}[[:alpha:]]{2}' 匹配三个数字,后跟两个字母。   Y  
[:alnum:]   匹配当前归类中的数字、大写和小写字母字符。例如,'[[:alnum:]]+' 匹配含有一个或多个字母和数字的字符串。   Y  
[:digit:]   匹配当前归类中的数字。例如,'[[:digit:]-]+' 匹配含有一个或多个数字或横线的字符串。同样,'[^[:digit:]-]+' 匹配含有一个或多个不是数字或横线的字符的字符串。   Y  
[:lower:]   匹配当前归类中的小写字母字符。例如,'[[:lower:]]' 不匹配 A,因为 A 为大写。   Y  
[:space:]   匹配单个空格 (' ')。例如,以下语句搜索 Contacts.City 以查找任何名称为两个词的城市: SELECT City FROM Contacts WHERE City REGEXP '.*[[:space:]].*';    
  Y  
[:upper:]   匹配当前归类中的大写字母字符。例如,'[[:upper:]ab]' 与以下其中一项匹配:任何大写字母、a 或 b。   Y  
[:whitespace:]   匹配一个空白字符,例如,空格、制表符、换页符和回车符。   Y  
[:ascii:]   匹配任何七位的 ASCII 字符(0 到 127 之间的顺序值)。    
[:blank:]   匹配一个空白区或水平制表符。

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

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