换句话说,在c++正则表达式中有AND运算符吗?通常我只会使用|,但它不起作用
例如,我只想返回两位数和一位数
string subject("This 91 - 500abc7 is a 5 test");
regex re("\\d\\d");
这只返回2位数字,如何添加第二个条件也匹配单个数字"\d“
结果应该是: 91 -7-5
发布于 2020-05-14 15:11:16
它不是您想要有1或2位数字(\d|\d\d)
的"and“。
但是正则表达式有编号重复的符号:\d{1,2}
问题是\d{1,2}
会与500
中的50
匹配。
所以你可以添加(负面的) look ahead/look:
(?
(1或2个数字,前后不跟另一个数字)
所以std::regex re(R"((?<!\d)\d{1,2}(?!\d))");
https://stackoverflow.com/questions/61785660
复制相似问题