如何用AND运算符编写正则表达式?

时间:2012-02-06 13:30:14

标签: c++ regex boost-regex

我的用户使用定义字符串来匹配输入字符串,我想简化定义字符串,这样我的用户就不需要知道regexp内部了。

我的想法是允许*/-7721/-7722/-7723匹配任何给定的4位数字符串not 7721 AND not 7722 AND not 7723

我正在搜索regexp以对输入字符串执行上述操作,该字符串是一个4位数字。

我尝试使用?!表示法,但它不能错误匹配整个字符串。

(?![0-9]{4}) - 这不允许任何4位数字符串。

((?!(7721))(?!(7722))(?!(77223)) - 这也无效

是否有AND运算符来执行上述操作?

谢谢,

1 个答案:

答案 0 :(得分:1)

你忘了^:

^(?!(?:7721))(?!(?:7722))(?!(?:7723))\d{4}

已编辑:已添加\ d {4}以实际匹配字符串,而不仅仅是测试