正则表达式验证数字和字母序列

时间:2009-12-29 19:09:32

标签: regex

我想要一个正则表达式来验证AABBAAA形式的输入,其中A是一个字母(a-z,A-Z),B是一个数字(0-9)。所有的As必须是相同的,Bs也必须如此。

3 个答案:

答案 0 :(得分:6)

这真的不像你想象的那么难;你已经掌握了大部分语法。

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

大括号中的数字({})表示匹配前一个字符或一组字符的次数,因此匹配[a-zA-Z]两次,[0-9]两次,{{1}三次。


修改:如果您想确保匹配的字符串不是较长字符串的一部分,可以使用word boundaries;只需将[a-zA-Z]添加到正则表达式的每一端:

\b

现在“ Ab12Cde ”会匹配,但“YZ Ab12Cde fg”不会。


修改2 现在问题已经改变,backreferences是唯一的方法。 edsmilde的答案应该有效;但是,您可能需要添加单词边界以获得最终解决方案。

\b[a-zA-Z]{2}[0-9]{2}[a-zA-Z]{3}\b

答案 1 :(得分:6)

如果所有的 A B 都应该是相同的,我认为唯一的方法是:

([a-zA-Z])\1([0-9])\2\1\1\1

其中 \ 1 \ 2 指的是第一个和第二个括号分组。但是,我不认为所有正则表达式引擎都支持这一点。

答案 2 :(得分:0)

[a-zA-Z]{2}\d{2}[a-zA-Z]{3}