c++ - 如何使用 C++ 正则表达式在方括号之间查找字符
问题描述
我有一个 C++ 正则表达式来搜索方括号内的字符,例如,如果字符串是 x[7:0],我想返回 7:0。这就是我的正则表达式的样子 -
std::regex reg("\[(.*?)\]");
当我编译(g++)时,我收到以下警告 -
../fixedPointFormatter.cc:30:18:警告:未知转义序列:']' std::regex reg("[(.*?)]"); ^~~~~~~~~~~
以下不返回任何内容...
if (regex_search(arg, matches, reg)) {
for (int i=1; i<matches.size(); i++) {
cout << matches[i] << endl;
}
}
有人可以帮助确定这有什么问题吗?
解决方案
正则表达式需要使用[
和]
进行转义\
。但是,要将其提供给正则表达式,您需要转义\
字符串中的 s。
std::regex reg("\\[(.*?)\\]");
推荐阅读
- android - 为什么是列表
.toFloatArray 比填充 FloatArray 慢吗?(漏洞?) - php - 导入 JQuery 响应式导航栏不起作用
- angular - Angular TypeError:无法在 Promise subscribe() 中读取 null 的属性“长度”
- iframe - 如何在博主的 iframe 中更改视频的 src 源
- node.js - 使用 vue.js 提高 JEST 测试性能
- android - 退出沉浸式模式问题
- cassandra - 计算 cassandra 中特定键空间列中的不同行
- javascript - 仅在已安装的情况下在 vue 中重新加载页面
- powerbi - 是否可以使用 DAX 在 Power BI 中进行反透视?
- javascript - 通话挂断后停止网络摄像头