【发布时间】:2013-06-02 20:28:22
【问题描述】:
我正在将基于 boost 的正则表达式转换为 C++11 正则表达式。我有一个名为 url 的捕获组:
\s*?=\s*?(("(?<url>.*?)")|('?<url>.*?)'))
使用 boost,如果您有 smatch,您可以调用 match.str("url") 按名称获取捕获组。使用std::smatch,我只能看到索引子匹配项。
如何使用 std::smatch 类访问 url 捕获?
【问题讨论】:
-
你试过
(?P<url>.*?)而不是(?<url>.*?)吗? -
@HamZa 我不确定 C++11 正则表达式是否支持命名捕获组。我刚刚阅读了 Stroustrup 新的“C++ 编程语言”中专门针对该主题的整章,它甚至没有提到它。许多在线参考资料似乎并没有指明其他方向。
-
根据这个answer,它似乎不支持命名组。
标签: regex c++11 capture-group