pgsql如何使⽤正则表达式的通配符,如匹配字母,数字版权声明:转载请注明作者(独孤尚良dugushangliang)出处:
下图来⾃于,我们会有下图的认知,由此写出模糊查询的语句。
但查询地址中是否含有⼏号,则没有成功,经查验,这是因为pgsql的like只⽀持%和_这两个通配符的特性。匹配字母的[a-zA-Z]和匹配数字的[0-9]则不可⽤于like。
--起初在pgsql中是这么写的,没有结果,不符合预期
select * from total where addname like '%[0-9]+号_%'
--经查询,pgsql的like只⽀持%和_这两个通配符
--匹配数字⽤到的[]不能⽤于like,⽽是SIMILAR TO
select * from total where addname similar to '%[0-9]+号_%'
从摘录了部分内容 如下:
|表⽰选择(两个候选之⼀)。
*表⽰重复前⾯的项零次或更多次。
+表⽰重复前⾯的项⼀次或更多次。
表⽰重复前⾯的项零次或⼀次。
{m}表⽰重复前⾯的项刚好m次。
{m,}表⽰重复前⾯的项m次或更多次。
regexp like{m,n}表⽰重复前⾯的项⾄少m次并且不超过n次。
可以使⽤圆括号()把多个项组合成⼀个逻辑项。
⼀个⽅括号表达式[...]声明⼀个字符类,就像 POSIX 正则表达式⼀样。
注意点号(.)不是SIMILAR TO的⼀个元字符。
独孤尚良dugushangliang——著
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论