gpt4 book ai didi

c++ - 获取名称子组

转载 作者:太空狗 更新时间:2023-10-29 22:53:24 29 4
gpt4 key购买 nike

我正在使用新版本的 boost 1.42,我想将正则表达式与命名子组一起使用。下面是一个例子。

std::string line("match this here FIELD=VALUE in the middle");
boost::regex rgx("FIELD=(?<VAL>\\w+)", boost::regex::perl );
boost::smatch thisMatch;
boost::regex_search( line, thisMatch, rgx );

你知道如何获取匹配的内容吗?传统的方式是

std::string result( mtch[1].first, mtch[1].second );

但是我不想使用这种方式。

我想像往常一样在 Perl 和正则表达式中使用子组的名称。我试过了,但没用。

std::string result( mtch["VAL"].first, mtch["VAL"].second );

您知道如何使用子组名称获取值吗?

谢谢AFG

最佳答案

据我所知,没有这样的选项。参见 Understanding Marked Sub-Expressions and Captures尤其是关于 Perl 和 Boost.Regex 等效性的表格。您将需要使用 boost::match_results<IteratorType>访问任何和所有匹配项。

关于c++ - 获取名称子组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2432116/

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