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

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

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

我如何调整它允许空格?


当前回答

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

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

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

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

其他回答

这在一开始就不允许有空间。但允许单词之间有空格。还允许在单词之间使用特殊字符。一个用于FirstName和LastName字段的良好正则表达式。

\w+.*$

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

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

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

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

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

^[a-zA-Z ]*$

我假设您不需要前导/尾随空格。这意味着你必须把正则表达式分成“第一个字符”,“中间的东西”和“最后一个字符”:

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

或者如果你使用类似perl的语法:

^\w[\w ]*\w$

另外:如果你故意措辞你的正则表达式,它也允许空字符串,你必须使整个事情可选:

^(\w[\w ]*\w)?$

如果你想只允许单个空格字符,它看起来有点不同:

^((\w+ )*\w+)?$

这个匹配0..N个单词后面跟着一个空格,加上一个没有空格的单词。并使整个东西可选,允许空字符串。

只适用于字母:

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

对于字母数字值和_:

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