notepad ++替换下一行(3或4)行中的字符串

时间:2013-07-22 05:17:03

标签: macros notepad++

我有一个183419行的文本文件,我想替换整行:

3 _TYPE PHOTO  

使用:

3 _TYPE DOCUMENT  

但仅限于以一行开头后的3或4行:

3 FILE d:\genie\grogan\doc\......  

例如:

3 FILE d:\genie\grogan\doc\mills\Mills Albert 1884 Birth Partial Transcript.jpg  
3 TITL Mills Albert 1884 Birth Partial Transcript  
3 _SCBK Y  
3 _TYPE PHOTO

或:

3 FILE d:\genie\grogan\doc\mills\Mills Albert 1884 DeathTranscript.jpg  
3 TITL Mills Albert 1884 DeathTranscript  
3 _SCBK Y  
3 _PRIM Y  
3 _TYPE PHOTO

但不适用于这种情况:

3 FILE d:\genie\grogan\photos\grogan edward\Grogan Thelma Simpson Jim.jpg  
3 _SCBK Y  
3 _TYPE PHOTO

这是一项需要每月运行的任务。

2 个答案:

答案 0 :(得分:0)

进行正则表达式搜索和替换,确保未选中 Dot匹配换行符。将查找设置为^(3 FILE d:\\genie\\grogan\\doc\\(.*\r\n){3,4})3 _TYPE PHOTO$,将替换为设置为\13 _TYPE DOCUMENT

(.*\r\n){3,4}部分匹配genie\\grogan\\doc行的末尾加上2或3个更完整的行。 (3 FILE ... )3 _TYPE PHOTO$部分匹配两个指定的字符串,并且括号括起除了要替换的行之外的所有文本。替换字符串中的\1插入捕获的文本,字符串的其余部分是所需的新文本。

在测试线上使用Notepad ++ 6.3.2进行测试。

根据您的行结尾,您可能需要调整查找内容字符串的\r\n部分。这些示例并未涵盖所有选项,因此您可能还需要将{3,4}部分更改为{4,5},具体取决于“的确切含义,只有在之后

答案 1 :(得分:0)

  1. 为您的线路添加书签
  2. 只对正确的书签行进行正则表达式(就像 AdrianHHH 所说的那样)