2017-09-23 59 views
1

我一定要找到一个非常大的一些模式(> 44万行)的文本文件,它看起来像这样的断言:环视在atom.io正则表达式FINF和替换

negative,10946,N: 10947,P: 59316,7.4346858,52.3209003 
145930 
24941,N: 54399,P: 24940,7.4308326,52.323004 
145943 

positive,57656,N: 57658,P: 57655,9.7569868,53.7176063 
131516 
57694,N: 57695 
9.677158,53.6762726 
131587 

或者,换句话说,是一个整数,之后是换行符,最后是另一个整数。

问题在于第2行和第3行之间的换行符。 #6和#7:我必须在此添加第二个\ n并添加文本“both”。我已经成功地写一个发现问题,例如新行的occurencies一个正则表达式:

^.[0-9]{4,7}\n[0-9]{4,7} 

此正则表达式找到这样一个换行符的所有occurencies。但是:我真的不知道我应该用什么替换这些文本部分。我想让这两个数字不变,但在\ n之后插入一个\ n和“两个”,这已经在那里了。

通常情况下,我会用环视断言是这样的:

(?<=^.[0-9]{4,7})\n(?=[0-9]{4,7}) 

但是:显然,atom.io不支持查找变通,至少不是我习惯的语法。它只是说“无效组”。任何提示?谢谢。

回答

0

OK,研究类似的问题,SO后,我发现,凌支持Perl样式的捕获组的占位符,因此,所有我不得不这样做,是为了延长我的正则表达式是这样的:

(^.[0-9]{4,7})(\n)([0-9]{4,7}) 

...并将其用作替换字符串:

$1\n\nboth,$3 

它仍然比查找更麻烦,但至少可以工作。 :)