我想要一个正则表达式来验证AABBAAA形式的输入,其中A是一个字母(az,AZ),B是一个数字(0-9).所有的As必须是相同的,Bs也必须如此.
它真的不像你想象的那么难; 你已经掌握了大部分语法.
[a-zA-Z]{2}[0-9]{2}[a-zA-Z]{3}
Run Code Online (Sandbox Code Playgroud)
大括号({})中的数字表示匹配前一个字符或一组字符的次数,因此匹配[a-zA-Z]两次,[0-9]两次和[a-zA-Z]三次.
编辑:如果要确保匹配的字符串不是较长字符串的一部分,可以使用字边界 ; 只需添加\b到正则表达式的每一端:
\b[a-zA-Z]{2}[0-9]{2}[a-zA-Z]{3}\b
Run Code Online (Sandbox Code Playgroud)
现在" Ab12Cde "将匹配,但"YZ Ab12Cde fg"将不会.
编辑2:现在问题已经改变,反向引用是唯一的方法.edsmilde的答案应该有效; 但是,您可能需要添加单词边界以获得最终解决方案.
\b([a-zA-Z])\1([0-9])\2\1\1\1\b
Run Code Online (Sandbox Code Playgroud)
如果所有的A和B都应该是相同的,我认为唯一的方法是:
([a-zA-Z])\1([0-9])\2\1\1\1
Run Code Online (Sandbox Code Playgroud)
其中\ 1和\ 2指的是第一和第二个括号分组.但是,我不认为所有正则表达式引擎都支持这一点.
| 归档时间: |
|
| 查看次数: |
1581 次 |
| 最近记录: |