【发布时间】:2016-12-15 14:58:27
【问题描述】:
我有这个 REGEX 表达式,用于通过 SQL 查询在文本中查找单词
[SQL QUERY] where REGEX concat(^|’| | | |\'|>|-)','Mercure','( | | |.|,|<|-) = 1
这就是我想要的工作方式(由于某些原因,传统的单词边界不起作用)。我想分别为每个捕获组添加一个左括号和一个右括号。但是当我尝试时:
(^|’| | | |\'|>|-|\()','Mercure','( | | |.|,|<|-|\))
然后我的 PHP 脚本出现错误,尽管 regex101 似乎并不觉得这很奇怪。有谁知道如何解决这个问题?
【问题讨论】:
-
请粘贴您的 PHP 代码。
-
如果你需要用 MySQL 匹配整个单词,也许你想要
REGEX concat('[[:<:]]','Mercure','[[:>:]]')? -
非常感谢 Wiktor:但是这些单词边界是否处理撇号之类的情况?就像法语中的“j'aime”一样,aime 必须被视为一个完整的词。我想这就是我当时选择以这种方式处理它的原因。不过,我想错了:这样更好……
-
巴托兹:谢谢!我会尽快的。但是当我尝试这样做时,像 Sequel 这样的工具也会引发错误,所以我认为 PHP 代码不是这里的问题。
-
抱歉...工作日结束。是的 j'aime 应该被视为两个词,撇号是直的还是弯曲的...不确定单词边界是否正确处理...