我试图建立一个Perl的,一个正则表达式匹配8个字符,需要一个字符串的确切长度为8包括至少一个字母AF(大写)和*至少一个十进制数(0-9)*
我想要正则表达式:
但不是:
现在我有
[\ DA-F] {8}
并且它允许以上所有.我不希望所有数字或所有字母的字段 - 只希望它与数字和字母匹配.
谢谢!
您可以使用前瞻:
^(?=.*\d)(?=.*[A-F])[\dA-F]{8}$
Run Code Online (Sandbox Code Playgroud)
(?= ... ) 在继续匹配其余模式之前确保前面有匹配,
(?=.*\d) 基本上确保有一个数字匹配前瞻的任意数量的字符,在这种情况下从模式的开始.
(=.*[A-F]) 以相同的方式行事,因此它起到检查的作用,以确保在任意数量的字符之后的某个地方A和F之间有一个字母.