来源:Http://www.postgres.cn/docs/11/ 9.7. 模式匹配 postgresql提供了三种独立的实现模式匹配的方法:sql LIKE操作符、更近一些的SIMILAR TO操作符(SQL:199
postgresql提供了三种独立的实现模式匹配的方法:sql LIKE
操作符、更近一些的SIMILAR TO
操作符(SQL:1999 里添加进来的)和POSIX-风格的正则表达式。除了这些基本的“这个串匹配这个模式吗?”操作符外,还有一些函数可用于提取或替换匹配子串并在匹配位置分离一个串。
LIKE
在pattern
里的下划线 (_
)代表(匹配)任何单个字符; 而一个百分号(%
)匹配任何零或更多个字符的序列。
要匹配文本的下划线或者百分号,而不是匹配其它字符, 在pattern
里相应的字符必须 前导逃逸字符。缺省的逃逸字符是反斜线,但是你可以用ESCAPE
子句指定一个不同的逃逸字符。 要匹配逃逸字符本身,写两个逃逸字符。
关键字ILIKE
可以用于替换LIKE
, 它令该匹配根据活动区域成为大小写无关。这个不属于SQL标准而是一个PostgreSQL扩展。
操作符~~
等效于LIKE
, 而~~*
对应ILIKE
。 还有 !~~
和!~~*
操作符分别代表NOT LIKE
和NOT ILIKE
。所有这些操作符都是PostgreSQL特有的。
SIMILAR TO
正则表达式SIMILAR TO
操作符根据自己的模式是否匹配给定串而返回真或者假。 它和LIKE
非常类似,只不过它使用 SQL 标准定义的正则表达式理解模式。
表 9.14列出了所有可用于 POSIX 正则表达式模式匹配的操作符。表 9.14. 正则表达式匹配操作符
操作符 | 描述 | 例子 |
---|---|---|
~ |
匹配正则表达式,大小写敏感 | "thomas" ~ ".*thomas.*" |
~* |
匹配正则表达式,大小写不敏感 | "thomas" ~* ".*Thomas.*" |
!~ |
不匹配正则表达式,大小写敏感 | "thomas" !~ ".*Thomas.*" |
!~* |
不匹配正则表达式,大小写不敏感 | "thomas" !~* ".*vadim.*" |
POSIX正则表达式提供了比LIKE
和SIMILAR TO
操作符更强大的含义。
--结束END--
本文标题: PosegreSQL基础回顾(第 9 章 函数和操作符)
本文链接: https://lsjlt.com/news/5939.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0