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