gpt4 book ai didi

C++,Boost regex,替换匹配值的值函数?

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:09 24 4
gpt4 key购买 nike

具体来说,我有一个名为 val 的字符串数组,我想替换所有 "%{n}%" 的实例。在输入中使用 val[n] .更一般地说,我希望替换值是匹配值的函数。这是在 C++ 中,所以我选择了 Boost,但如果另一个通用正则表达式库满足我的需求,最好让我知道。

我找到了一些 .NET(C#、VB.NET)解决方案,但我不知道我是否可以在这里使用相同的方法(或者,如果可以,如何使用)。

我知道有一个丑陋的解决方案:使用 "(%{0}%)|(%{1}%)..." 形式的表达式然后有一个像 "(1?" + val[0] + ")(2?" + val[1] ... + ")" 这样的替换模式.

但我想知道是否可以更优雅地完成我正在尝试做的事情。

谢谢!

最佳答案

我不相信 boost::regex 有一个简单的方法来做到这一点。我能想到的最直接的方法是使用“(%{[0-9]+}%)”模式进行 regex_search,然后迭代返回的 match_results 对象中的子匹配项。您需要通过连接每个匹配项之间的文本(match_results::position 方法将是您的 friend )和将子匹配项转换为 val 数组中的值的结果来构建一个新字符串。

关于C++,Boost regex,替换匹配值的值函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1703452/

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