C++多个正则表达式条件语法

C++ multiple regex conditions syntax

本文关键字:条件 语法 正则表达式 C++      更新时间:2023-10-16

换句话说,c++ 正则表达式中有 AND 运算符吗?通常我只会使用 |但它不起作用

例如,我只想返回 2 位和 1 位数字

string subject("This 91 - 500abc7 is a 5 test");
regex re("\d\d");

这只返回 2 位数字,如何添加第二个条件以匹配个位数"\d">

结果应为: 91 - 7 - 5

它不是您想要有 1 或 2 位数字的"和"(d|dd).

但是正则表达式有编号重复的符号:d{1,2}

问题是d{1,2}会匹配50500

所以你可以添加(负面(向前/向后看:

(?<!d)d{1,2}(?!d)(1 或 2 位数字前后不跟另一个数字(

所以std::regex re(R"((?<!d)d{1,2}(?!d))");