我的正则表达式在我的所有测试中都运行良好,但我无法使其在 MySQL 中运行,尽管我一直在谷歌搜索并尝试其变体的示例:
^[A-Za-z]{2,4}-\d{3}-\d{2}$
在 Javascript 中,它正确匹配 AA-001-01
到 ZZZZ-999-99
,因此在 MySQL 中尝试了它,并对正则表达式进行了各种调整,所有没有运气:
SELECT * FROM products WHERE sku REGEXP '^[A-Za-z]{2,4}-\d{3}-\d{2}$'
(该表包含数千条记录,其中 sku
与上面给出的示例匹配)
据我所知,Mysql Regex 支持是有限的,但这是否应该不能正常工作,或者是否需要进一步考虑语法才能与 Mysql 一起使用?
最佳答案
要匹配数字,您应该使用 [0-9]
或 [[:digit:]]
。
试试这个:
SELECT col1, col2, ..., coln
FROM products
WHERE sku REGEXP '^[A-Za-z]{2,4}-[0-9]{3}-[0-9]{2}$'
在线查看它:sqlfiddle .
请参阅 REGEXP
的手册.
关于mysql - 调整 Regex 以与 MySQL 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11873931/