我需要一个正则表达式,用于查找所有不是a-z或0-9的字符。
我不知道在正则表达式中NOT运算符的语法。
我希望正则表达式为NOT [a-z, A-Z, 0-9]。
提前感谢!
我需要一个正则表达式,用于查找所有不是a-z或0-9的字符。
我不知道在正则表达式中NOT运算符的语法。
我希望正则表达式为NOT [a-z, A-Z, 0-9]。
提前感谢!
这里的“^”表示非字母或数字的字符,你的正则表达式应该使用[^a-zA-Z0-9]
。需要注意的是:这个字符类在处理非ascii环境时可能会有意外的行为。例如,它会匹配到é。
如果这些正则表达式是perl-compatible(PCRE),你可以使用\s
来匹配所有空白字符,包括空格和其他空白字符。如果它们是posix-compatible,则使用[:space:]
字符类(如:[^a-zA-Z0-9[:space:]]
)。我建议使用[:alnum:]
而不是a-zA-Z0-9
。
如果你想匹配一行的结尾,应该在末尾加上$
。只有当你的匹配跨越多行时才打开多行模式,对于更大的文件,多行模式会降低性能,因为要读入更多的内容到内存中。
为什么不把样本输入、你要匹配的文本和使用的程序都包含进来呢?
^
即可反转该字符集。[^a-z0-9]
作为一则附言,我发现一些更有用的正则表达式资源是这个网站和这个作弊表(特定于C#)。在字符类表达式的开头加上^
: [^a-z0-9]
\W
,它是非单词字符的速记符号(等同于 [^a-zA-Z0-9_]
)。