我想匹配包含字母和数字没有空格
的字符串我尝试了^[a-zA-Z+d*]*$
,但它匹配只有字母
这是它应该做的:
Nope
Nope 2
MatchPlease123
如果你想尝试现场: http://rubular.com/r/pFMkk9ATc0
谢谢
答案 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)
我认为这个最简单的也会有所帮助
正则表达式: ^(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z\d]+$
1。
^
字符串的开头。2。
(?=.*\d)
积极向前看数字。3。
(?=.*[a-zA-Z])
正面看字母。4。
[a-zA-Z\d]+
匹配所有digits
A-Z
和a-z
5.
$
字符串结尾。