gpt4 book ai didi

c++ - 如何在 xpressive 中迭代命名组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:22 25 4
gpt4 key购买 nike

假设我有一个像这样的 sregex 对象:

boost::xpressive::sregex::compile("(?P<firstword>\\w+) (?<secondword>\\w+)!");

尽管 xpressive 支持命名组,但我无法在 xpressive 文档中找到任何与此相关的引用。

我知道可以遍历组就好了,但是我如何访问组名(如果组有名称的话)?

那么,我将如何遍历命名组?

最佳答案

假设我们有您正在处理的整个正则表达式,iIt 在我看来,您正在尝试创建一个匹配两个的正则表达式命名捕获,因此尝试迭代命名捕获是没有用的。

你只需要尝试类似的东西。

std::string str("foo bar");
sregex rx = sregex::compile("(?P<firstword>\\w+) (?<secondword>\\w+)!");
smatch what;
if(regex_search(str, what, rx))
{
std::cout << "char = " << what["firstword"] << what["secondword"] std::endl;
}

如果正则表达式是更复杂模式的一部分,为什么不使用名为 capture 的静态: http://www.boost.org/doc/libs/1_41_0/doc/html/xpressive/user_s_guide.html#boost_xpressive.user_s_guide.named_captures.static_named_captures

关于c++ - 如何在 xpressive 中迭代命名组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8611221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com