用于检查非字母数字字符的正则表达式

时间:2015-01-09 15:02:50

标签: .net regex

我需要.NET程序的正则表达式,以确保字符串不包含任何字母或数字。下划线和其他特殊字符都可以。 字符串的一个例子是" .____"

我需要检查字符串并确保它没有任何数字或字母。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

使用:

^[^\p{L}\p{Nd}]+$

\ p {L}匹配Unicode类别“letter”中的字符
\ p {Nd}匹配Unicode类别“十进制数字”

中的字符

答案 1 :(得分:1)

您可以尝试下面的正则表达式,它允许不会包含字母或数字的字符串。

^[^\dA-Za-z]*$

^声称我们刚开始。 $断言我们在字符串的末尾。 [^..]否定了字符类。 *重复前一个令牌零次或多次。如果您不想匹配空白行,请将上述正则表达式中的*更改为+

^[^\dA-Za-z]+$

OR

^(?!.*[\dA-Za-z]).*$

(?!.*[\dA-Za-z])否定前瞻声明字符串不会包含字母或数字。它只匹配条件为真的那些行。

OR

^[^\p{L}\p{N}]*$

\p{L}匹配来自任何语言的任何类型的字母,\p{N}匹配任何类型的数字。通过将它放入一个否定的字符类,如[^\p{L}\p{N}]*将匹配任何字符,但不匹配字母或数字零次或多次。

答案 2 :(得分:0)

如果您在找到字母数字字符时想要引发错误,则执行以下操作可能会更简单:

[A-Za-z0-9]

在这种情况下,您不需要开始和结束锚点,因为正则表达式只会查找字母数字字符,并在找到第一个字符时返回true。