正则表达式负范围算法

时间:2016-01-11 16:46:22

标签: regex algorithm

我需要在我的正则表达式匹配器中实现正负范围。

正面范围看起来并不困难:

[1-3] == (1|2|3)

但我不明白如何将负范围[^ 1-3]转换为简单的正则表达式字符串。

有可能吗?

谢谢!

更新

不。似乎这是不可能的。

好的,在这种情况下,正则表达式库如何处理负范围?

1 个答案:

答案 0 :(得分:1)

如果你使用的正则表达式引擎支持负向前瞻,你可以这样做:

(?!1|2|3).

?!是负前瞻运算符。它说“这个表达式后面的字符必须与此表达式不匹配。”它在不推进光标的情况下进行否定匹配。接下来是.,表示任何字符。