寻找与Python的正则表达式sub
或subn
方法类似的内容。
http://docs.python.org/library/re.html
所以基本上就像这样的C / C ++ api
re.sub(pattern, repl, string, count=0, flags=0)
我可以在Python中放置repl
的函数指针。
答案 0 :(得分:1)
#include <iostream>
#include <regex>
#include <string>
int main()
{
std::string text = "Quick brown fox";
std::regex vowel_re("a|o|e|u|i");
std::cout << std::regex_replace(text, vowel_re, "[$&]") << '\n';
}
输出:
Q[u][i]ck br[o]wn f[o]x
答案 1 :(得分:0)
@Vikas是正确的(至少我很确定他是)std::regex_replace
能做你想做的事,但他并没有真正展示如何做到这一点。当您使用regex_replace
时,正则表达式的每个匹配都会生成一个regex::match
对象。使用您传递给format
的替换字符串(以及您传递的标记)调用该对象的regex_replace
成员函数。
因此,要获得与您在Python中讨论的相同的效果(为每个替换调用一个函数,而不是仅指定替换文本),您必须创建一个重载其{{1}的regex::match
对象成员函数,这是将被调用的函数。默认情况下,标准format
可以执行ECMAScript / Javascript替换或regex::match::format
替换(您可以将标记传递给您喜欢的信号)。