如何创建仅与字母匹配数字的正则表达式?
我尝试了类似(?>[A-z]+)([a-z0-9]+)
的内容。
正则表达式应该给出以下结果:
1234b --> true
1234 --> false
abcd --> false
abcd4 --> true
答案 0 :(得分:9)
(?:\d+[a-z]|[a-z]+\d)[a-z\d]*
基本上,1和a是任何数字和任何字母,它匹配1a或a1,由任意数量的字母数字字符包围。
编辑:现在更短,可能更快
答案 1 :(得分:6)
其他答案不正确,并且允许任何仅包含字母,数字或两者的字符串。我的表达式将明确排除仅包含字母或仅包含数字的字符串。
[A-Za-z0-9]*([a-zA-Z]+[0-9]+|[0-9]+[a-zA-Z]+)
任意数量的字母和数字,后跟至少一个字母后跟一个数字或至少一个数字后跟一个字母。
然而,可能有一种更简单的方法。我看起来很啰嗦。也许不是。有人关心投球吗? :P
答案 2 :(得分:1)
^([a-Z]+[0-9]+|[0-9]+[a-Z]+)[a-Z0-9]*$
以及受TimPietzcker启发的简单版本:
^([a-Z]+[0-9]|[0-9]+[a-Z])[a-Z0-9]*$
答案 3 :(得分:0)
if ( /[a-zA-Z]/ && /\d/ )