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

标签 php mysql regex

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

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

这按照我想要的方式工作(由于某些原因,传统的单词边界不能完成这项工作)。我想分别向每个捕获组添加一个左括号和一个右括号。但是当我尝试时:

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

然后我的 PHP 脚本出现错误,尽管 regex101 似乎并不觉得这很奇怪。有谁知道如何解决这个问题?

最佳答案

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

我不明白有多个空格。

>不容易啊仅与 < 匹配-- 这可能需要一长串选择。

解决该问题(如果它很复杂)的一种方法是仅在 MySQL 中执行此操作:

WHERE col LIKE '%Mercure%'

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

关于php - 捕获组中的正则表达式括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41167201/

相关文章:

PHP 照片/文件上传问题

regex - 为什么这个 sed 命令输出 "[18"而不是 "18"?

php - Laravel 无法连接到其他数据库服务器

javascript - 转化跟踪添加到购物车按钮 woocommerce

php - 将复杂数组转换为 foreach 循环

php - 使用 Azure 对 Codeigniter 部署进行故障排除

javascript - 使用 PHP 将 JSON 附加到文件中的数组

php - MYSQL JOIN 和 COUNT

java - 正则表达式 - 如何通过它的类查找 HTML <a> 标记内容?

php - 如何使用 preg_match 删除分号 ';'?