查找并替换正则表达式

时间:2015-06-22 12:03:58

标签: c++ regex visual-studio

我试图用正则表达式替换一堆函数调用,但似乎无法正确使用它。这是我尝试做的简化示例:

GetPet<Animal_Dog>();
GetPet<Animal_Cat>();
GetPet<Animal_Bird>();

我想改为:

$('#remarks').parsley( 'addConstraint', { minlength: 5 });

2 个答案:

答案 0 :(得分:8)

使用以下正则表达式:

(GetPet)([^(]*) with subsitution \1<Animal_\2>

Demo

答案 1 :(得分:0)

您可以使用以下正则表达式和代码:

std::string ss ("GetPetDog();");
static const std::regex ee ("GetPet([^()]*)");
std::string result;
result = regex_replace(ss, ee, "GetPet<Animal_$1>");
std::cout << result << endl;

<强>正则表达式

  • GetPet - 字面匹配GetPet(我们这里不需要捕获组)
  • ([^()]*) - 一个捕获组,用于匹配()以外的任何字符0次或更多次(*

输出:

enter image description here