2017-10-07 85 views
1

我有一个很大的文本文件。我有一个给定的特定关键字[与“ABC DEF G”之间的空格)。 它要么在文本文件中出现两次,要么完全不出现。[在记事本++中的两个给定单词之间自动选择文本]

我想要记事本++搜索,以便这两个关键字之间的所有文本(大约300到1000行)自动选择。我的第一个问题是:

这个自动选举可能(通过正则表达式或一些已经构建的插件)。

如果是的话,有人可以请建议。

截至目前我正在阅读整个文本文件,以搜索哪些是时间和内存消耗。 谢谢。

+0

你是说像[此](https://ibb.co/dovFiw)? – Gurman

+0

是的完全一样:) –

+0

太棒了。我已经添加它作为答案。 – Gurman

回答

0

试试这个正则表达式:

(?<=ABC DEF G)[\s\S]*(?=ABC DEF G)

Click for Demo

说明:

  • (?<=ABC DEF G) - Positive Lookbehind发现这是由文本之前的位置ABC DEF G
  • [\s\S]* - 比赛0+任何字符
  • (?=ABC DEF G)的出现 - Positive lookahead找到紧接着文本的位置ABC DEF G

输出:

enter image description here

+0

只是一件事,如果你能帮助我。文本就像ABC DEF G *****。然后是一些文本。然后ABC DEF G ******。我希望下一行的文本在*****之后,直到我再次到达A的第二个。此外,如果文本不存在,这个表达式会做什么。第一个问题我也可以通过在我的插件中进行字符扫描来解决问题。可以告诉如果这个文本不存在会发生什么。 –

+0

@NikhilSaxena试试这种情况:'(?<= ABC DEF G)[^ \ n] * \ n \ K [\ s \ S] *(?= ABC DEF G)'。请参阅[这里](https://regex101.com/r/8cOYW8/2)。您正在从下一行开始选择。 – Gurman

+0

它工作正常。但在某些情况下,它不工作。当它不工作时,文本文件大约4个lac线,如果小文件高达2.5 lac,它正在工作。这种搜索可能会失败文件大小或可能是其他原因? –

相关问题