RegEx完全重复不起作用

时间:2013-09-27 18:26:30

标签: regex

我是RegEx中的菜鸟,我正在尝试编写一个RegEx模式,其中最少6个,最多9个字符,其中前3个字符是字母(不区分大小写,仅限alpha),其余为位数。

我有以下模式:^\w{3}\d{3,6}$

但出于某种原因,当我输入以下内容时,该模式会返回true:aa12345Ap4587,依此类推。我需要前3个字符只是字母(确切)。

我希望有人能够帮助我。

感谢!!!

4 个答案:

答案 0 :(得分:5)

\w相当于[a-zA-Z0-9_]。您应该将正则表达式更改为:

^[a-zA-Z]{3}\d{3,6}$

答案 1 :(得分:2)

仅将[a-zA-Z]用于字母。我更喜欢使用[0-9],即使它与\d的一致性

也是如此
/^[a-zA-Z]{3}[0-9]{3,6}$/

\w匹配a-z, A-Z, 0-9, _,并且只能用于字母数字字符

答案 2 :(得分:2)

如果您想允许更广泛的unicode值,我建议:

[\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}]{3}

这将允许小写,大写,标题,“其他”和修饰符作为前三个字符。

例如,由于特殊字符,[a-zA-Z]{3}会排除单词“Résumé”。上面的模式允许它。

我建议您查看正则表达式字符类的文档:

<强> Character Classes or Character Sets

MSDN文档也非常好,大部分都与标准的正则表达式库兼容:

<强> Character Classes in Regular Expressions

答案 3 :(得分:1)

试试这个:

^[a-zA-Z]{3}\d{3,6}$

\w匹配a-z, A-Z, 0-9