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

Regular expression to check for non-alphanumeric characters

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

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

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

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

^ 断言我们处于起点。 $ 断言我们在字符串的末尾。 [^..] 否定字符 class。 * 重复前一个标记零次或多次。如果您不想匹配空行,请将上述正则表达式中的 * 更改为 +

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

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

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

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

\p{L} 匹配任何语言的任何字母,\p{N} 匹配任何数字。通过将其放入否定字符 class 中,例如 [^\p{L}\p{N}]* 将匹配任何字符,但不匹配字母或数字零次或多次。

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

[A-Za-z0-9]

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

使用:

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

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