簡體   English   中英

正則表達式搜索和替換項目中的文件

[英]Regex search and replace files in project

我正在嘗試將'class'=>'smart-form'更改為'class'=>'smart-form','target'=>'_blank'

我使用以下正則表達式來搜索所有符合此條件的項目文件中的行(我使用regex101工具生成了以下正則表達式):

\<\?php \$form = ActiveForm::begin\(\['id' => 'my-form', 'action'=>\['(\w*)\/(\w*)'\], 'options'=>\[('class'=>'smart-form')]]\); \?>

當我使用Atom編輯器搜索項目文件中的行時,它匹配得很好

但是,我不能使用replace字段使用此替換來替換那些行:

$3,'target'=>'_blank'

是否有用於Atom編輯器的軟件包來優化此任務?

作為替代,我可以使用sed(或者可能是MINGW32提供的bash工具的組合),但是我應該使用什么命令?,我對使用此工具沒有經驗。

片段: https//regex101.com/r/nC4hI0/1

除了完成整個字符串,您還可以匹配要替換的部分嗎?

('class'=>'smart-form')

然后,您的替換項$1,'target'=>'_blank'將在不刪除其余匹配項的情況下起作用。

如果這還不夠具體,那么我想解決的第一個解決方案就是在每個零件的前后添加捕捉,並進行替換,例如$1$4,'target'=>'_blank'$5 (數字可能需要調整為是正確的。

sed '\#\<?php \$form = ActiveForm::begin(\['id' => 'my-form', 'action'=>\['([[:alnum:]_]*)\/([[:alnum:]_]*)'\], 'options'=>\[('class'=>'smart-form')\]\]); ?># {
   s/'class'=>'smart-form'/&,'target'=>'_blank'/
   }' YourFile
  • posix sed版本
  • 將您的所有指紋都用作正則表達式,但是對於您的實際需求而言肯定太大了
  • 假設正則表達式匹配是一個完整的行(如果在多行中進行了解析或其他信息可能出現在同一行中,則應進行更改)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM