gpt4 book ai didi

c++ - std::regex 在字符串中的括号内查找单词,然后替换它(和括号)

转载 作者:行者123 更新时间:2023-11-28 07:27:32 26 4
gpt4 key购买 nike

这个有点麻烦。我是第一次使用 std::regex,语法对我来说有点不直观。

我有一些字符串,比如 [VARIABLE],有时还有 [VARIABLEA]\[VARIABLEB]

例如,我想用 Windows 替换 [VARIABLEA],用 System32 替换 [VARIABLEB],所以结果将是 Windows\System32 .

您认为找到这些匹配项的最佳正则表达式是什么?您认为替换它们的最佳方法是什么?

我基本上一直在流式传输到 Stringstream 以进行替换(当我找到匹配项时,我输入新值,当我不匹配时,我输入原始 key ,对于所有其他我只是流式传输)。但我不确定 std::regex 是否为此提供了一些更好的选择。

这是我一直在尝试的正则表达式:std::regex("\\\\*\\[[^\\]]*\\]\\\\*");

我的日程安排很紧,而且我的头在 table 上敲了太久了。我知道这可能很简单,但我学得慢。提前感谢您提供的任何帮助。

编辑:

此外,我试图在帖子中稍微简化一下,但为了清楚起见,我使用的是 unicode 字符串,所以它实际上是 std::wregex(L"\\\\*\\[[^\\]]*\\]\\\\*"); .所以我不知道我是否可以在那里弹出 R for raw literals。

最佳答案

你可以使用像这样的正则表达式:

@"^\[VARIABLEA\]$"这会在您解析字符串时为您匹配。

您还可以使用 .split() 或 Regex.split() 方法将字符串拆分为分隔符上的数组查看:http://www.dotnetperls.com/split

然后只需替换您找到匹配项的位置即可。

关于c++ - std::regex 在字符串中的括号内查找单词,然后替换它(和括号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18452839/

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