在我的代码中用[]替换.at()

1 c++ perl awk sed

我是一名C++用户,并获得了一些.at()用于对STL向量进行绑定检查的代码.现在我想将它们改为标准[].有谁知道可以做到这一点的脚本?它不一定是一个超级通用的脚本 - 大部分情况都是.at(i)或者可能.at(a*i+j)- 但它们有太多可以手工完成.

kev*_*818 6

使用此Perl运算符:

s/\.at\(([^)]+)\)/[$1]/g
Run Code Online (Sandbox Code Playgroud)

s///Perl中的运算符是"替代"(查找/替换).在第一组//中,指定要匹配的正则表达式.第二个//是替换或替换匹配的文本.

在这种情况下,我发现任何".at(任何东西,而不是近距离)"的实例,并将其替换为"[那些在那些 - parens]中".

作为单线,

perl -pe's/\.at\(([^)]+)\)/[$1]/g' in.cpp > out.cpp
Run Code Online (Sandbox Code Playgroud)

如果使用Visual Studio,请在"查找/替换"提示中执行此操作:

找到什么:\.at\({[^)]+}\) 替换为:\[\1\]

启用正则表达式,你很高兴.