通过regex postgresql提取单词

fruv7luv  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(242)

这个问题在这里已经有了答案

postgresql regexp\u匹配语法未按预期工作(1个答案)
10个月前关门了。
列包含像“a357”、“b123”这样的代码,其中包含许多单词,我想将它们提取出来

select *, regexp_matches(col1,'a\d{3}') from table

但我也想要“b123”代码,然后我写这个代码不起作用:

select *, regexp_matches(col1,'(a|b)\d{3}') from table

其中as(a | b)是正则表达式。请告诉我解决方案或任何其他方式不regexp\u匹配,因为我需要修剪{}符号之后。

jv4diomz

jv4diomz1#

问题是括号中的子表达式。如文件所述:
如果找到匹配项,并且模式包含带圆括号的子表达式,则结果是一个文本数组,其第n个元素是与模式的第n个带圆括号的子表达式匹配的子字符串。
在您的情况下,可以通过使用字符类轻松解决此问题:

regexp_matches(col1, '[ab]\d{3}')

相关问题