c++ - 如何使用 AND 运算符编写正则表达式?

标签 c++ regex boost-regex

我有来自用户的定义字符串来匹配输入字符串,我想简化定义字符串,这样我的用户就不需要知道内部正则表达式了。

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

我正在寻找一个正则表达式来对一个 4 位数字的输入字符串执行上述操作。

我试过使用 ?! 符号,但它不能错误匹配整个字符串。

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

((?!(7721))(?!(7722))(?!(77223)) - 这也没有用

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

谢谢,

最佳答案

你忘了^:

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

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

关于c++ - 如何使用 AND 运算符编写正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9160812/

相关文章:

c++ - 是否可以创建一个函数来比较从对象 vector 中动态选择的变量?

c++ - 如何创建独立于平台的宏来包装编译器扩展?

php - 正则表达式:将除YouTube链接之外的所有链接与视频进行匹配

java - 在java中使用If then else正则表达式构造捕获组

JavaScript 正则表达式或运算符

c++ - 将 regex_search 与 std::string 一起使用时的无限循环

c++ - 使用 boost 正则表达式时出现 shared_ptr 错误

C++ 替代函数

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

c++ - Boost::regex_iterator 构造函数失败但 make_regex_iterator 函数成功