2013-07-22 23 views
0

我有183419线,其中我想更换的整行的文本文件:记事本++替换下一个字符串(3或4)线

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 

这是将需要每月运行任务。

回答

0

做一个正则表达式式的搜索和替换,确保点匹配的换行符未被选中。设置找到^(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行后”

+0

非常感谢您的帮助和清晰的解释,但我不能得到匹配。 [链接] http://www.groganmob.com/extpgs/img/notepad01.jpg和[链接] http://www.groganmob.com/extpgs/img/notepad02.jpg。我尝试过“FILE:\\ D:\\ ..”以区分大小写,以及{3,4}到{4,5}和{3,6}。还尝试了\ r \ n和\ r。 – mgrogan

+0

啊!我忘了打开正则表达式。太棒了,非常感谢:) :) :) :) :) – mgrogan

+0

如果问题已被回答,请*接受*答案。 – AdrianHHH

0
  1. 收藏你的线条
  2. {3,4}部分更改为 {4,5}
  3. 做一个正则表达式来书签线只(就像AdrianHHH说)