这个有点麻烦。我第一次使用 std::regex,语法对我来说有点不直观。
我有类似[VARIABLE]和有时[VARIABLEA] \ [VARIABLEB]之类的字符串。
例如,假设我想将[VARIABLEA]替换为 Windows,将[VARIABLEB]替换为 System32,因此结果将是Windows\System32。
您认为查找这些匹配项的最佳正则表达式是什么?您认为更换它们的最佳方法是什么?
我基本上一直在流式传输到 Stringstream 以进行替换(当我找到匹配项时,我输入了新值,当我没有输入原始键时,我只是输入了其他所有内容)。但我不确定 std::regex 是否为此提供了更好的选择。
这是我一直在尝试的正则表达式:std::regex("\\\\*\\[[^\\]]*\\]\\\\*");
我的日程安排很紧,而且我的头在桌子上敲了太久了。我知道这可能很简单,但我学得很慢。提前感谢您提供的任何帮助。
编辑:
另外,我试图为帖子简化一点,但为了清楚起见,我使用的是 unicode 字符串,所以它真的是std::wregex(L"\\\\*\\[[^\\]]*\\]\\\\*");
. 所以我不知道我是否可以在那里弹出原始文字的 R。