【发布时间】:2021-05-12 12:01:20
【问题描述】:
我必须浏览字符串集合以替换模式并保存更改。
保存操作(非常)昂贵且不在我的控制范围内,所以我想事先知道替换是否有任何作用。
我可以使用std::regex_search 来了解模式在我的输入中是否存在,并使用捕获组将详细信息存储在std::smatch 中。 std::regex_replace 似乎没有明确告诉我它是否做了任何事情。
模式和字符串任意长且复杂;在regex_search 之后运行regex_replace 似乎很浪费。
我可以直接比较输入和输出来寻找差异,但这也很不舒服。
是否有一种简单的方法来观察regex_replace 以确定其影响,或者使用由regex_search 填充的smatch 来进行更快的替换操作?
提前致谢。
【问题讨论】:
-
字符串有多长?并且是替换长度相同还是长度不同?
-
@rustyx 大多数将在 256 个字符以下,但它们可以任意长。替换是任意的,我不能保证长度会不同。