找到特定行后添加特定行

找到特定行后添加特定行

我有一个包含 400-500 个文件的庞大代码库。在大多数文件中,我们都有这样的行:<cfcatch type="any"> / <cfcatch type="database"> / <cfcatch>等等。因此常见的模式是<cfcatch

无论哪里有<cfcatch,我都需要在该行后面添加这一行新行,即<cfinclude template="test.cfm">

因此<cfcatch type="any"> 现在是:

<cfcatch type="any"> <cfinclude template="test.cfm">

我尝试使用多个正则表达式替换,但没有成功。

答案1

这可以通过 3 个步骤实现:

步骤1:

使用在文件中查找确定一个不包含在任何文件中的字符串,即在所有 500 个文件中总共出现 0 次。假设您发现它是字符串***###***。(我避免使用字母以避免区分大小写,使解决方案更简单。)
 

第2步:

使用在文件中查找

  • 寻找:(^\<cfcatch.*$)

  • 用。。。来代替:\1***###***

  • 搜索模式:

    • 正则表达式

    • “.匹配换行符”选项:未选中

在所有文件中搜索并替换。
 

步骤3:

使用在文件中查找

  • 寻找:***###***

  • 用。。。来代替:\r\n<cfinclude template="test.cfm">

  • 搜索模式:扩展

在所有文件中搜索并替换。

完毕 :)

答案2

基于以下假设:

  • <cfcatch></cfcatch>您在一行中没有标签(<cfinclude...仍然会插入到下面!)
  • 你没有<cfcatch/><cfinclude...仍将插入下面!)
  • 你不关心插入的缩进<cfinclude...

...解决方案是:

  • 寻找:(<cfcatch.*)$(\s)
  • 用。。。来代替:\1\2<cfinclude template="test.cfm">

如果这些假设不正确,请在评论中告诉我,我会纠正我的解决方案以满足这些要求。

相关内容