如何在boost regex_search中获取原始字符串前缀

How to get original string prefix in boost regex_search

本文关键字:获取 原始 字符串 前缀 search boost regex      更新时间:2023-10-16

我在boost中使用regex_search,如下所示:

std::string symbol = "abcd1234";
boost::regex regExpr("(\d{4})", boost::regex::icase);
boost::smatch regMatch;
boost::regex_search(symbol, regMatch, regExpr);

我需要得到的是:"abcd",即到第一个匹配的reg表达式的原始字符串。这怎么可能?提前感谢。。。

以下内容应该有效:

^(.*?)\d{4}

解释:

^-字符串的开头
.-通配符
.*?-零个或多个(*)外卡(.),非贪婪匹配(?),因此您获得第一个匹配,而不是最后一个

因此,您可以匹配从字符串开头到数字的所有内容。

使用增强功能的替代方案:

regMatch.prefix()应返回所需的字符串。