在替换正则表达式中添加一个匹配的数字

Set*_*gie 2 c++ regex perl addition substitution

我有一个充满C++代码的文件,它是一堆返回数字的小函数.如果数字大于2,我试图用数字加一个替换每个数字.所以,

int blah() { return 5; }
Run Code Online (Sandbox Code Playgroud)

会成为

int blah() { return 6; }
Run Code Online (Sandbox Code Playgroud)

int blah() { return 1; }
Run Code Online (Sandbox Code Playgroud)

会保持不变.

这是怎么做到的?

Bla*_*iev 5

有点难看,但应该工作:

s/\{\s*return\s+(\d+)\s*;\s*\}/$1 > 2 ? "{ return " . ($1 + 1) . "; }" : $&/ge;
Run Code Online (Sandbox Code Playgroud)