所以我有一张名为" lu_regex"使用名为" regex"
的列 Select * from lu_regex;
athedsl-\d+
i5[93][0-9a-fA-F]+\.versa
5ac[a-f0-9]+.+sky
该表包含1000行,具有各种正则表达式语法,在此示例中我只显示了三个。
现在我尝试接受用户输入并将该输入与表中的行匹配。所以我这样做。
SELECT * FROM lu_regex where '5aca3a11.bb.sky.comr' regexp regex;
regex
5ac[a-f0-9]+.+sky
1 row returned.
我通过该查询得到了我的预期,然后我尝试了这个。
SELECT * FROM lu_regex where 'athedsl-07371.home.otenet.gr' regexp regex;
0 rows returned.
它应匹配" athedsl- \ d +",但我假设它与" \ d"有关。我甚至尝试将其添加到数据库" athedsl - \\ d +"而且也没有引起比赛。
我试图坚持使用MySQL解决方案,我做错了什么,这应该是可能的。
答案 0 :(得分:0)
我刚发现这个链接,它看起来像一个尚未修复的错误。它于2013年得到验证。
https://bugs.mysql.com/bug.php?id=70413
错误#70413 \ d在REGEXP中无法使用MySQL查询
我认为解决方案是用[0-9]
替换所有\ d