如何在同一个字符集中否定和选择

时间:2012-12-21 07:04:03

标签: regex

这必须相当简单,但似乎无法找到答案

假设需要选择所有数字,但使用charset

regx = [0-9][^3]同时像[0-9^3]但是regX引擎不会允许它

2 个答案:

答案 0 :(得分:2)

嗯,你可以使用负面预测:

/(?!3)[0-9]/

...但通常更容易从charclass本身中排除不需要的字符:

/[0-24-9]/

当你想要匹配任意数量的这样的角色时,第二种方法更有益:比较这个......

/^[0-24-9]*$/

......用这个:

/^(?!.*3)[0-9]*$/

答案 1 :(得分:1)

执行类似

的操作
[0-24-9]

这将包括除3之外的所有数字。

我认为您尝试过的嵌套字符类只支持几种正则表达式。例如。在.net中,您应该可以执行类似

的操作
[0-9-[3]]

See regular-expressions.info