Postgres子串寻找空间

时间:2014-03-23 17:16:41

标签: regex postgresql substring

我正在尝试使用子字符串匹配Postgres中的空格。

我目前有:substring((data)::text from '(?:"name":")([a-zA-Z0-9._-]*)'),

数据的响应如下:"name":"John Smith"... 我想要匹配全名,但遗憾的是我似乎只匹配John。我试着添加\s而没有任何运气。知道我做错了吗?

1 个答案:

答案 0 :(得分:2)

Postgresql regex\s没有任何问题。所以我假设你在连字符(\s)之后的正则表达式末尾使用了-,它完全不同。例如

([a-zA-Z0-9._-\s]*)
              ^----- you see the hyphen here? it is the problem.

在正则表达式字符类中[] a-z表示从az的任何字符。

所以你有两个解决方案。

使用\

转义连字符
([a-zA-Z0-9._\-\s]*)

或者将\ s放在其他地方,让我们在开头说。

([\sa-zA-Z0-9._-]*)

现在试试!

相关问题