PosegreSQL基础回顾(第9章函数和操作符)

database

来源:http://www.postgres.cn/docs/11/

9.7. 模式匹配

 

PostgreSQL提供了三种独立的实现模式匹配的方法:SQL LIKE操作符、更近一些的SIMILAR TO操作符(SQL:1999 里添加进来的)和POSIX-风格的正则表达式。除了这些基本的这个串匹配这个模式吗?”操作符外,还有一些函数可用于提取或替换匹配子串并在匹配位置分离一个串。

9.7.1. LIKE

pattern里的下划线 (_)代表(匹配)任何单个字符; 而一个百分号(%)匹配任何零或更多个字符的序列。

要匹配文本的下划线或者百分号,而不是匹配其它字符, 在pattern里相应的字符必须 前导逃逸字符。缺省的逃逸字符是反斜线,但是你可以用ESCAPE子句指定一个不同的逃逸字符。 要匹配逃逸字符本身,写两个逃逸字符。 

关键字ILIKE可以用于替换LIKE, 它令该匹配根据活动区域成为大小写无关。这个不属于SQL标准而是一个PostgreSQL扩展。

操作符~~等效于LIKE, 而~~*对应ILIKE。 还有 !~~!~~*操作符分别代表NOT LIKENOT ILIKE。所有这些操作符都是PostgreSQL特有的。 

9.7.2. SIMILAR TO正则表达式

SIMILAR TO操作符根据自己的模式是否匹配给定串而返回真或者假。 它和LIKE非常类似,只不过它使用 SQL 标准定义的正则表达式理解模式。 

9.7.3. POSIX正则表达式

表 9.14列出了所有可用于 POSIX 正则表达式模式匹配的操作符。表 9.14. 正则表达式匹配操作符

操作符描述例子

~

匹配正则表达式,大小写敏感

"thomas" ~ ".*thomas.*"

~*

匹配正则表达式,大小写不敏感

"thomas" ~* ".*Thomas.*"

!~

不匹配正则表达式,大小写敏感

"thomas" !~ ".*Thomas.*"

!~*

不匹配正则表达式,大小写不敏感

"thomas" !~* ".*vadim.*"

 

POSIX正则表达式提供了比LIKESIMILAR TO操作符更强大的含义。

以上是 PosegreSQL基础回顾(第9章函数和操作符) 的全部内容, 来源链接: utcz.com/z/533511.html

回到顶部