gpt4 book ai didi

c++ - 使用 Boost::Regex 获取最后一场比赛

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

我在带有 Boost 的 C++ 中有一个正则表达式,它匹配多行字符串中的行。正则表达式搜索找到第一个匹配项,但我对匹配的最后一行感兴趣。

我现在使用的代码是这样的:

matched = boost::regex_search(input, results, regex);               
if (!matched) {
return -1; // error code
}
matched_string = results["Group"];

如果regex"(?<Group>Data.)"input"Data1 Data2 Data3" , 然后 matched_string现在是"Data1" .我希望它是 "Data3" .

最佳答案

match_results

operator[] 返回一个sub_matchsub_match 继承了 std::pair 的迭代器。它的firstsecond 成员对应于匹配的范围。因此,您可以使用它的 second 作为新搜索的起点。例如:

string  input = "Data1 Data2 Data3";
regex re("(?<Group>Data.)");
string::const_iterator begin = input.begin(), end = input.end();
smatch results;
while ( regex_search( begin, end, results, re ) ) {
smatch::value_type r = results["Group"];
begin = r.second;
}

希望这对您有所帮助。

关于c++ - 使用 Boost::Regex 获取最后一场比赛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141312/

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