正则表达式:仅匹配带数字的字母

daz*_*act 13 regex

如何创建仅字母匹配的正则表达式?

我尝试过类似的东西(?>[A-z]+)([a-z0-9]+).

正则表达式应该给出以下结果:

1234b --> true
1234 --> false
abcd --> false
abcd4 --> true
Run Code Online (Sandbox Code Playgroud)

mar*_*ius 9

(?:\d+[a-z]|[a-z]+\d)[a-z\d]*

基本上,1和a是任何数字和任何字母,它匹配1a或a1,由任意数量的字母数字字符包围.

编辑:现在更短,可能更快


Mac*_*ath 6

其他答案不正确,并允许任何只包含字母,数字或两者的字符串.我的表达式将明确排除仅包含字母或仅包含数字的字符串.

[A-Za-z0-9]*([a-zA-Z]+[0-9]+|[0-9]+[a-zA-Z]+)
Run Code Online (Sandbox Code Playgroud)

任意数量的字母和数字,后跟至少一个字母后跟一个数字或至少一个数字后跟一个字母.

但是,可能有一种更简单的方法.我看起来很啰嗦.也许不是.有人关心投球吗?:P

  • @billybob:哎呀,你是对的,我确实犯了一个大错:它应该是`^(?:[0-9] + [AZ] | [AZ] + [0-9])[A-Z0-9]*$`.抱歉. (2认同)