正则表达式匹配错误的String

时间:2017-05-22 14:02:19

标签: regex

我想匹配包含字母和数字没有空格

的字符串

我尝试了^[a-zA-Z+d*]*$,但它匹配只有字母

的字符串

这是它应该做的:

Nope
Nope 2
MatchPlease123  

如果你想尝试现场: http://rubular.com/r/pFMkk9ATc0

谢谢

2 个答案:

答案 0 :(得分:3)

您可以使用

/^(?=[^a-zA-Z]*[a-zA-Z])(?=[^0-9]*[0-9])[a-zA-Z0-9]*$/

请参阅regex demo(由于输入是多行字符串,因此进行了一些修改)。

<强>详情:

  • ^ - 字符串的开头
  • (?=[^a-zA-Z]*[a-zA-Z]) - 一个积极的前瞻,要求在除ASCII字母之外的任何0+字符之后必须至少有一个ASCII字母
  • (?=[^0-9]*[0-9]) - 一个积极的前瞻,要求在除ASCII数字之外的任何0+字符之后必须至少有一个ASCII数字
  • [a-zA-Z0-9]* - 0+ ASCII字母或数字
  • $ - 字符串结束。

答案 1 :(得分:2)

我认为这个最简单的也会有所帮助

Regex demo

正则表达式: ^(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z\d]+$

  

1。 ^字符串的开头。

     

2。 (?=.*\d)积极向前看数字。

     

3。 (?=.*[a-zA-Z])正面看字母。

     

4。 [a-zA-Z\d]+匹配所有digits A-Za-z

     

5. $字符串结尾。