正则表达式帮助NOT az或0-9

s15*_*99d 7 regex regex-negation

我需要一个正则表达式来查找非az或0-9的所有字符

我不知道正则表达式中NOT运算符的语法.

我希望正则表达式不是[az,AZ,0-9].

提前致谢!

Mic*_*man 15

这是^.你的正则表达式应该使用[^a-zA-Z0-9].注意:此字符类可能具有非ascii语言环境的意外行为.例如,这将匹配é.

编辑

如果正则表达式是perl兼容的(PCRE),则可以使用\s匹配所有空格.这将扩展为包含空格和其他空白字符.如果它们是posix兼容的,请使用[:space:]字符类(如下所示:) [^a-zA-Z0-9[:space:]].我建议使用[:alnum:]而不是a-zA-Z0-9.

如果要匹配行的末尾,则应$在末尾包含a .只有当您的匹配应该跨越多行时,才会启用多行模式,这会降低较大文件的性能,因为必须将更多文件读入内存.

为什么不包括样本输入的副本,要匹配的文本以及用于执行此操作的程序?


Don*_*nut 11

这很简单; 你只需^在字符集的开头添加否定该字符集.

例如,以下模式将匹配不在该字符集中的所有内容 - 即,不是小写ASCII字符或数字:

[^a-z0-9]
Run Code Online (Sandbox Code Playgroud)

作为旁注,我发现的一些更有用的正则表达式资源是这个网站这个备忘单(C#特定).