c++ - C++ 多正则表达式条件语法
问题描述
换句话说,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|\d\d)
。
但正则表达式有编号重复的符号:\d{1,2}
问题是\d{1,2}
匹配50
在500
.
所以你可以添加(负面)向前/向后看:
(?<!\d)\d{1,2}(?!\d)
(1 位或 2 位数字前后没有其他数字)
所以std::regex re(R"((?<!\d)\d{1,2}(?!\d))");
推荐阅读
- java - 查找字符串中倒数第二个出现的字符
- algorithm - 有没有找到没有的算法。0-1 完全有向图中的 k 权重哈密顿路径
- amazon-web-services - AWS Cloudformation 循环输入参数
- javascript - 如何使用 href 和 onclick 函数传递参数?
- javascript - 如何使用 import 导入 Socket.io - Nodejs
- javascript - 未捕获的 ReferenceError:firebase 未在 login.js:2 中定义
- liquibase - 需要步骤在 Spring Boot 中使用 docker 实现 liquibase 以及如何使用 docker 执行
- 3d - 没有法线的光线追踪阴影偏差
- angular - 如何从 ionic 5 电容器应用程序中的 url 下载文件
- android - 空闲和加载状态的单元测试失败