正则表达式以三个alpha和四位数开头

时间:2013-01-29 10:53:49

标签: mysql sql regex

我已经编写了一个sql语句来从Mysql数据库中检索数据,我想选择myId以三个alpha和4位数字开头的数据:ABC1234K1D2

myId REGEXP '^[A-Z]{3}/d{4}' 

但它给我空结果(数据在DB中可用)。有人能指出我纠正的方式。

5 个答案:

答案 0 :(得分:3)

在大多数正则表达式变体中,答案是:/d匹配/后跟d;我想你想要\d匹配一个数字。

然而,MySQL的正则表达式实现有限(参见documentation)。

任何数字都没有像\d这样的字符集的快捷方式。

您需要使用命名字符集([[:digit:]]),或者只使用[0-9]

答案 1 :(得分:2)

试试这个:

[A-Z]{3}[0-9]{4}

如果您希望字符不区分大小写。试试这个:

[a-zA-Z]{3}[0-9]{4}

答案 2 :(得分:1)

首先,在常规正则表达式中,要匹配数字,您必须使用\d而不是/d(这使您匹配/后跟d)。

然后,我从未注意到,但我认为\d(以及其他像\w等)似乎在MySQL中不可用。 doc列出了已接受的空间字符,并且不显示这些通用类。即使[:digit:]非常短[0-9]

,您也可以使用;)

答案 3 :(得分:0)

你做得很好,只需用/d替换\d
最终正则表达式:^[A-Z]{3}\d{4}

答案 4 :(得分:0)

您可以使用以下模式:

^[a-zA-Z]{3}\d{4}