【发布时间】:2013-03-29 21:12:04
【问题描述】:
我的任务是为不同字符串中的条目创建一个黑名单。我正在使用MySQL 检查数据库中的条目。
你可能知道MySQL中的单词边界标记:
[[:<:]] 和 [[:>:]] 对应于默认正则表达式中的 \b。
当字符串中存在regexp special characters 和word boundary marks 时出现问题。
但是这些字符被双反斜杠转义了!
只需运行此查询
SELECT
"test()" REGEXP "[[:<:]]test\\(\\)[[:>:]]",
"test()" REGEXP "test\\(\\)",
"test" REGEXP "[[:<:]]test[[:>:]]",
"test" REGEXP "test" ;
你会得到
0 | 1 | 1 | 1
而不是预期
1 | 1 | 1 | 1
有人能解释一下如何解决这个问题吗?
【问题讨论】:
标签: php mysql sql regex database