C ++正则表达式替换第一个匹配项

Posted

技术标签:

【中文标题】C ++正则表达式替换第一个匹配项【英文标题】:C++ regex replace first match 【发布时间】:2016-04-09 14:27:24 【问题描述】:

我尝试编写一个类似于 Java 的 Matcher::replaceFirst(String replacement) 的方法。我知道如何用std::regex_replace 替换std::string 中的所有匹配项,但是如何只替换字符串中正则表达式的第一个匹配项?

【问题讨论】:

到目前为止你尝试过什么代码? 【参考方案1】:

您可以将std::regex_replace 与附加标志std::regex_constants::format_first_only 一起使用,以获得您想要的结果。

查看http://en.cppreference.com/w/cpp/regex/regex_replace 了解更多信息。

【讨论】:

【参考方案2】:

您仍然可以通过将format_first_only 指定为std::regex_replace() 的标志参数的参数来使用std::regex_replace

看这里http://en.cppreference.com/w/cpp/regex/match_flag_type

【讨论】:

以上是关于C ++正则表达式替换第一个匹配项的主要内容,如果未能解决你的问题,请参考以下文章

是否有正则表达式来删除“。”的第一个实例?

返回 Ruby 正则表达式的第一个匹配项

替换整个第一个匹配的行

Power BI R 脚本正则表达式仅返回第一个匹配项

awk one-liner 仅替换第一个匹配的正则表达式出现的文本

关于在vim中的查找和替换