我正在尝试使用子字符串匹配Postgres中的空格。
我目前有:substring((data)::text from '(?:"name":")([a-zA-Z0-9._-]*)'),
数据的响应如下:"name":"John Smith"...
我想要匹配全名,但遗憾的是我似乎只匹配John。我试着添加\s
而没有任何运气。知道我做错了吗?
答案 0 :(得分:2)
Postgresql regex对\s
没有任何问题。所以我假设你在连字符(\s
)之后的正则表达式末尾使用了-
,它完全不同。例如
([a-zA-Z0-9._-\s]*)
^----- you see the hyphen here? it is the problem.
在正则表达式字符类中[]
a-z
表示从a
到z
的任何字符。
所以你有两个解决方案。
使用\
([a-zA-Z0-9._\-\s]*)
或者将\ s放在其他地方,让我们在开头说。
([\sa-zA-Z0-9._-]*)
现在试试!