我想要一个正则表达式,防止符号,只允许字母和数字。下面的正则表达式工作得很好,但它不允许单词之间有空格。

^[a-zA-Z0-9_]*$

例如,当使用这个正则表达式时,“HelloWorld”是可以的,但“HelloWorld”不匹配。

我如何调整它允许空格?


当前回答

这个正则表达式只允许字母和空格:

^[a-zA-Z ]*$

其他回答

试一试:

^(\w+ ?)*$

解释:

\w             - alias for [a-zA-Z_0-9]
"whitespace"?  - allow whitespace after word, set is as optional

试试这个吧:

result = re.search(r"\w+( )\w+", text)

只适用于字母:

^([a-zA-Z])+(\s)+[a-zA-Z]+$

对于字母数字值和_:

^(\w)+(\s)+\w+$

这是我的正则表达式 : @"^(?=.{ 3、15 }$)(?:(?:\ p {L} | \ p {N })[._()\[\]-]?)*$"

我只是在*之前的正则表达式的末尾添加了([\w]+)

@ ^(?”=(3.15%。 }$)(?:(?:\ p (L) | \ p (N })[._()\[\]-]?)([\ w] +) *美元”

现在字符串中允许有空格。

如果你正在使用JavaScript,那么你可以使用这个正则表达式:

/^[a-z0-9_.-\s]+$/i

例如:

/^[a-z0-9_.-\s]+$/i.test("") //false
/^[a-z0-9_.-\s]+$/i.test("helloworld") //true
/^[a-z0-9_.-\s]+$/i.test("hello world") //true
/^[a-z0-9_.-\s]+$/i.test("none alpha: ɹqɯ") //false

这个正则表达式的唯一缺点是字符串完全由空格组成。" "也会显示为true。