捕获组中的正则表达式括号

时间:2016-12-15 14:58:27

标签: php mysql regex

我有这个REGEX表达式用于通过SQL查询在文本中查找单词

[SQL QUERY] where REGEX concat(^|’| | | |\'|>|-)','Mercure','( | | |.|,|<|-) = 1

这就是我想要的方式(出于某些原因,传统的单词边界不起作用)。我想分别为每个捕获组添加一个左括号和一个结束括号。但是当我尝试:

(^|’| | | |\'|>|-|\()','Mercure','( | | |.|,|<|-|\))

然后我的PHP脚本出错了,虽然regex101似乎没有发现这个奇怪的。有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

WHERE col REGEXP "(^|[’ '>-])Mercure[ .,<-]"

我不明白有多个空白。

要查找仅由>匹配的<并不容易 - 这可能需要很长的选择列表。

解决问题的一种方法(如果它很复杂)就是在MySQL中只做这个:

WHERE col LIKE '%Mercure%'

然后使用PHP代码过滤掉与复杂边界条件不匹配的行。