我想要一个正则表达式,防止符号,只允许字母和数字。下面的正则表达式工作得很好,但它不允许单词之间有空格。
^[a-zA-Z0-9_]*$
例如,在使用此正则表达式时,"HelloWorld“可以,但"Hello World”不匹配。
我如何调整它才能留出空格?
发布于 2013-03-18 17:46:43
一种可能是只将空格添加到字符类中,就像acheong87建议的那样,这取决于您对模式的严格程度,因为这也允许以5个空格开头的字符串,或者只由空格组成的字符串。
另一种可能是定义一个模式:
我将使用\w
,它在大多数正则表达式中与[a-zA-Z0-9_]
相同(有些是基于Unicode的)。
^\w+( \w+)*$
这将允许一系列至少一个单词,并且单词由空格分隔。
^
匹配字符串的开头
\w+
匹配一系列至少一个单词字符
( \w+)*
是重复0次或更多次的组。在组中,它需要一个空格,后跟一系列至少一个单词字符
$
匹配字符串的末尾
发布于 2014-01-14 06:48:34
这个很适合我
([\w ]+)
发布于 2013-03-18 16:55:01
尝试使用:
^(\w+ ?)*$
解释:
\w - alias for [a-zA-Z_0-9]
"whitespace"? - allow whitespace after word, set is as optional
https://stackoverflow.com/questions/15472764
复制相似问题