这个问题在这里已经有了答案:
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匹配,因为我需要修剪{}符号之后。
1条答案
按热度按时间jv4diomz1#
问题是括号中的子表达式。如文件所述:
如果找到匹配项,并且模式包含带圆括号的子表达式,则结果是一个文本数组,其第n个元素是与模式的第n个带圆括号的子表达式匹配的子字符串。
在您的情况下,可以通过使用字符类轻松解决此问题: