我的任务是为不同字符串中的条目创建黑名单。我正在使用MySQL
检查数据库中的条目。使用字边界时的奇怪行为[[:<:]] and [[:>]]
你可能知道单词边界标志着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
可能有人,请解释一下如何解决这个问题?
感谢您指出解决方案,这工作! – vikingmaster 2013-04-07 22:32:02