正则表达式从开始标签匹配到空行或结束标签

tkj*_*kja 3 regex

如何匹配带有正则表达式的startlabel和空行或endlabel之间的内容?

例如regex101链接

<START> some text is here. 
more text

unrelated text

<START> even more text. 
text text
<STOP>
Run Code Online (Sandbox Code Playgroud)

它应该匹配两个匹配项

<START> some text is here. 
more text
Run Code Online (Sandbox Code Playgroud)

<START> even more text. 
text text
<STOP>
Run Code Online (Sandbox Code Playgroud)

到目前为止,我提出的正则表达式如下(但由于(?s)。*部分,它与全文匹配)。

<START>((?s).*)(\s\s|<STOP>)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ano 5

您应该使用一个懒惰量词.*为它可以匹配尽可能少。使用.*?

(?s)(<START>.*?)(?:(?:\r*\n){2}|<STOP>)
Run Code Online (Sandbox Code Playgroud)

将您指定为结束条件的内容排除在组之外。

  1. (?:\r*\n){2} 空行。
  2. <STOP> 结束标签。

演示