3

我的这个正则表达式在我的所有测试中都可以正常工作,但是我无法让它在 MySQL 中工作,尽管我一直在谷歌搜索并尝试了以下示例:

^[A-Za-z]{2,4}-\d{3}-\d{2}$

AA-001-01在 Javascript 中,它通过正确匹配ZZZZ-999-99,因此在 MySQL 中尝试了它,对正则表达式进行了各种调整,但都没有运气:

SELECT * FROM products WHERE sku REGEXP '^[A-Za-z]{2,4}-\d{3}-\d{2}$'

sku(该表包含与上面给出的样本匹配的数千条记录)

据我所知,Mysql Regex 支持是有限的,但这应该不能正常工作,还是有一些进一步的语法考虑可以与 Mysql 一起工作?

4

1 回答 1

7

要匹配一个数字,您应该使用[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

于 2012-08-08T22:13:03.357 回答