Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试构建一个匹配8个字符串的Perl正则表达式,该字符串需要长度正好为 8,由至少一个字母 AF(大写)和*至少一个十进制数字 (0-9) *组成
我希望正则表达式能够捕获:
但不是:
现在我有
[\dA-F]{8}
它允许以上所有内容。我不想要全是数字或全是字母的字段 - 只希望它与带有数字和字母的字段匹配。
谢谢!
您可以使用前瞻:
^(?=.*\d)(?=.*[A-F])[\dA-F]{8}$
(?= ... )在继续匹配模式的其余部分之前确保前面有匹配,
(?= ... )
(?=.*\d)基本上确保有一个数字与前瞻所在的任意数量的字符匹配,在这种情况下是从模式的开头。
(?=.*\d)
(=.*[A-F])作用相同,因此它充当检查以确保 A 和 F 在任意数量的字符之后的某处前面有一个字母。
(=.*[A-F])