我正在尝试提取所有PHP文件中的以下字符串的大量替换内容:
$var->getVar($lc['first_var']['second_var']);
替换为:
$lc['second_var'];
我花了几个小时试图弄清楚,但是我迷路了。
“ second_var”中的变量是动态的,因此相当复杂。有什么想法吗?
我可以使用以下方法获取$lc['first_var']['second_var']
:
\(([^\)]+)\)
现在,我只需要替换['first_var']
,然后返回$lc['second_var']
-我在这一阶段的思考过程是忽略['first_var']
-这可能吗,那么我有解决方案吗?
答案 0 :(得分:0)
模式Demo
在记事本++中:
查找内容:string tmg ={" \n" ,
"//periodic signal intf.KEYCONTROL_CLK \n" ,
"fork\n" ,
" begin\n" ,
" the_clock = 0;\n" ,
" forever begin\n" ,
" if(the_clock == 0)\n" ,
" #(5000000/2 * 1ps);\n" ,
" else\n" ,
" #((5000000-5000000/2) * 1ps);\n" ,
" the_clock=~the_clock;\n" ,
" end\n" ,
" end\n" ,
"join_none\n"};
`uvm_info("record_key_control_map_and_record", $sformatf("Start recording of interface if_record_key_control"), UVM_DEBUG);
$fdisplay ( mcd0,tmg);
替换为:\$var->getVar\(\$lc\['[^']*'](\['[^']*'])\)
\$lc$1
是一个否定的字符类,表示“不是单引号的任何字符”。[^']
表示零个或多个(尽可能多)。*
中的替换表示“捕获组1”-这是第二个变量。 p.s。仅供参考,当$1
位于否定的字符类中时(您的尝试),您无需在其中添加斜杠。