正则表达式接受除字母、数字之外的任何内容

daz*_*zle -4 regex

需要有关正则表达式的帮助,该正则表达式可接受除字母(Aa-Zz)、数字(0-9)和@之外的任何内容

例如 diff 输入类型

bony -> fail
gup12-> fail
@    -> fail
!#$  -> pass
*&%  -> pass 
Run Code Online (Sandbox Code Playgroud)

Jam*_*aix 5

首先警告:不同语言有许多正则表达式实现,因此一些细节可能会有所不同,但这些在所有平台上通常都是正确的:

通过正则表达式,您可以使用[]来定义字符类,它是一组可以匹配的字符。请参阅: https: //www.regular-expressions.info/charclass.html

因此,要匹配任何英文字母,您可以使用[A-Za-z]. (但这不会匹配重音字母。)类似地,您可以将数字与[0-9]. (这不会匹配阿拉伯语等其他文字中代表数字的字符。)您可以将其中任何一个与[A-Za-z0-9].

您还可以通过以 开头来否定字符类^。因此[^0-9]匹配除 10 位数字字符之外的任何内容。同样[^A-Za-z0-9]匹配除英文字母和数字之外的任何内容。

许多平台上的常见字符类都支持一些简写:

  • \d匹配任何数字 (0-9),但在某些平台上,这也将匹配代表任何脚本中数字的任何字符(阿拉伯语等)
  • \w匹配任何“单词”字符,即通常可以在变量名称中使用的任何字符:字母、数字和_。同样,在某些平台上,这将是任何在任何脚本中都算作字母的任何内容(阿拉伯语、西里尔语等)
  • \D是 的补集\d并匹配 中不存在的任何内容\d
  • \W是补集\w

请参阅: https: //www.regular-expressions.info/shorthand.html

因此,对于您的情况,您可能希望该类[^A-Za-z0-9@]匹配除这些字符之外的任何内容。

然后您可以在末尾添加量词+以匹配一次或多次。[^A-Za-z0-9@]+

请参阅: https: //www.regular-expressions.info/repeat.html