如果模式位于一行的末尾,我想禁用匹配模式。 例如,我的字符串是" Hello,world"我也希望匹配这个字符串和"你好,世界!"串。 到目前为止我试过
SELECT 'Hello, world' SIMILAR TO '%([\-\,\.\s\?\!]?)world([\-\,\.\s\?\!]+)%',
'Hello, world!' SIMILAR TO '%([\-\,\.\s\?\!]?)world([\-\,\.\s\?\!]+)%'
但第一场比赛返回false。
更新
要匹配的词:
你好,世界!
再见,世界。
嗨世界
这个世界太神奇了。
不匹配的词:
的HelloWorld
你好,世界。
这个问题被认为是世界范围的问题。
答案 0 :(得分:1)
怎么样:
SELECT 'Hello, world' ~* '\yworld\y';
~*
匹配正则表达式并且不区分大小写
\y
匹配字边界
根据standard_conforming_strings参数的值,您可能必须使用2个反斜杠:
SELECT 'Hello, world' ~* '\\yworld\\y';