正则表达式跨所有行的模式匹配,直到文件末尾或字符串

时间:2016-06-30 21:59:24

标签: regex

我一直在研究以下正则表达式:

/(?<=\@Comment\{Annotation: key:START;\})( )/

旨在尝试在文本文件中查找类似于@Comment{Annotation: key:START;}的注释。这些注释表示可以将文件分解为较小文件的可能行。

我在完成捕获组指令时遇到问题,或者我已经描述了错误,我的最后一个( ),以便它扫描字符串中剩余的所有行(可能包含EOF)或下一个符合此模式的注释被检测到。

我希望不必将此转换为基于行的方法,并在每行执行检查...

我认为以下其中一项可能有效,但到目前为止还没有:

  • \ S
  • \ s *(。*) - &gt;
  • 这意味着我可以手动重复这个序列,一次添加一行,但这是非常不切实际的

1 个答案:

答案 0 :(得分:3)

这个正则表达式应该有效:

(.*?)((\@Comment\{Annotation: key:START;\})|$)

请参阅example online

(.*?)匹配文本直到分隔符表达式。然后是一个表达式,它匹配您的分隔符或文档的末尾($)。

对于每个匹配,第一个组为分隔符提供文本,第二个组为匹配的分隔符文本。

此表达式需要单行模式s和全局模式g