我试图将'class'=>'smart-form'
更改为'class'=>'smart-form','target'=>'_blank'
我有以下正则表达式来搜索符合此条件的所有项目文件中的行(我使用 regex101 工具生成以下正则表达式):
\<\?php \$form = ActiveForm::begin\(\['id' => 'my-form', 'action'=>\['(\w*)\/(\w*)'\], 'options'=>\[('class'=>'smart-form')]]\); \?>
当我使用 Atom编辑器
搜索项目文件中的行时,它非常匹配但是,我不能使用替换字段来替换使用此替换的那些行:
$3,'target'=>'_blank'
是否有 Atom编辑器的软件包来优化此任务?
作为altenative我可以使用sed(或者也许是MINGW32提供的bash工具的组合)但是我应该使用什么命令?,我没有使用过这个工具。
答案 0 :(得分:1)
您是否可以匹配您尝试替换的部分,而不是整个字符串?
('class'=>'smart-form')
然后你的替换$1,'target'=>'_blank'
将无法移除其余的匹配。
如果这还不够具体,那么我头脑中的第一个解决方案就是将捕捉添加到之前和之后。在部分之后,并使你的替换像$1$4,'target'=>'_blank'$5
(数字可能需要调整才能正确)。
答案 1 :(得分:0)
sed '\#\<?php \$form = ActiveForm::begin(\['id' => 'my-form', 'action'=>\['([[:alnum:]_]*)\/([[:alnum:]_]*)'\], 'options'=>\[('class'=>'smart-form')\]\]); ?># {
s/'class'=>'smart-form'/&,'target'=>'_blank'/
}' YourFile