Stringy: 5/5
Stringy : 3 / 5
3 / 5  Stringy


我正在尝试匹配字符串上的两个前导空格,或者如果找不到则忽略它。我试过了:

SELECT *
FROM testtable
WHERE `file` REGEXP '(  )Stringy(: | : )'


虽然这不会返回任何行

是否有可能做到这一点?

最佳答案

您需要转义在正则表达式模式中具有特殊含义的字符,例如方括号()

具有两个前导空格的示例:

SELECT "  Stringy: 3/5" REGEXP '[ ]{2}Stringy(: | : )';
## 1
SELECT "  Stringy : 3 / 5" REGEXP '[ ]{2}Stringy(: | : )';
## 1


最多两个前导空格:

SELECT "Stringy : 3 / 5" REGEXP '[ ]{0,2}Stringy(: | : )';
## 1


另请参阅


MYSQL Docs on Regular Expressions
Escape special characters for SQL REGEXP

关于mysql - MySQL REGEXP匹配两个空格或不匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12547293/

10-12 21:11