正则表达式匹配组增强c++
Regex matching groups boost c++
[Noob Corner]
你好,我试图抓住一个组boost regex取决于匹配的字符串,我认为我使用了错误的方式。
boost::regex expr(R"(:?(:?busername *(S*))|(:?bserver *(S*))|(:?bpassword *(S*)))");
std::vector<std::string > vec = { "server my.server.eu", "username myusername", "password mypassword" };
for (auto &elem : vec)
{
if (boost::regex_match(elem, expr, boost::match_extra))
{
boost::smatch what;
boost::regex_search(elem, what, expr);
std::cout << "Match 1 (username) : " << what[1].str() << std::endl;
std::cout << "Match 2 (server) : " << what[2].str() << std::endl;
std::cout << "Match 3 (password) : " << what[3].str() << std::endl;
}
}
我想要这样的:
server my.server.eu
匹配1 (username): NULL
匹配2(服务器):my.server.eu
匹配3(密码):NULL
我在互联网上搜索,但我没有找到关于捕获组识别的明确答案。
谢谢
你实际上有6个而不是3个匹配组。
你的正则表达式以这样的方式组织:奇数匹配组将匹配一个键值(即:username myusername),而偶数匹配组将匹配实际值(即:myusername)。
因此,您必须查找组2、4和6以获得用户名、服务器和密码值。
相关文章:
- 无法将结构注册为增强几何体3D点
- 增强基于 XML class_id的反序列化
- 增强精神解析器规则以检测语句中的特殊结尾
- C++ 使用增强正则表达式库时断言崩溃
- 增强精神 X3:错误:在"..."中没有名为"大小"的类型
- 如何包装(撰写)增强 hana 地图并访问括号运算符(运算符 [])?
- 有没有办法在C ++中检测汉字?(使用增强)
- 如何将增强MSM与增强信号结合使用?
- 如何使用增强::几何计算多边形的旋转固体体积?
- 复制部分文件的C++/增强方式
- 增强 ASIO 和串行端口异步读取
- 增强 Hana index_if和类型
- 增强超几何测试
- 如何修改增强 hana 结构的成员
- 增强纤维work_stealing屏障会导致段错误
- 增强循环缓冲区push_back在前面插入数据
- 彩色增强::日志显示偏移的颜色
- 增强序列化,按基类型加载存档类会产生错误的数据
- C++构建增强 1.57.0 VS2013 x64 本机工具命令提示符
- 增强二进制存档 - 减小大小