需要正则表达式的帮助,它将接受除字母(Aa-Zz),数字(0-9)和@
以外的任何内容例如差异输入类型
bony -> fail
gup12-> fail
@ -> fail
!#$ -> pass
*&% -> pass
答案 0 :(得分:4)
首先警告:有许多使用不同语言的正则表达式实现,因此某些细节可能有所不同,但在所有平台上通常都是如此:
使用正则表达式,您可以使用[
和]
定义一个 character class ,它是一组可以匹配的字符。参见: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@]+
答案 1 :(得分:2)
您在这里[^\w@]+
您可能想添加\ n以避免多行字符串上的空匹配:[^\w@\n]+