Regex 正则表达式:选择多行之间的相等字。记事本++

Regex 正则表达式:选择多行之间的相等字。记事本++,regex,notepad++,Regex,Notepad++,我有一个文件,类似于yaml,我尝试在记事本++中选择到word之间的所有de行,尤其是应用程序。我尝试使用正则表达式,因为行数和内容是动态的,我想选择所有单独的段 这就是我现在所拥有的,但是这个正则表达式从第一个应用程序到文件末尾进行选择 ^Application.*^(?!Application) 文件示例: Other Application uuid='1234567890A' label='MyLabel' MessageFlow uuid='1234567890

我有一个文件,类似于yaml,我尝试在记事本++中选择到word之间的所有de行,尤其是应用程序。我尝试使用正则表达式,因为行数和内容是动态的,我想选择所有单独的段

这就是我现在所拥有的,但是这个正则表达式从第一个应用程序到文件末尾进行选择

^Application.*^(?!Application)
文件示例:

Other
Application
  uuid='1234567890A'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123B'
    ....
Application
  uuid='1234567890C'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123D'
    ....
Application
  uuid='1234567890E'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123F'
    ....
Application
  uuid='1234567890G'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123H'
我要选择的组:

Application
  uuid='1234567890A'
  label='MyLabel'
  MessageFlow
    uuid='1234567890123B'
...

您可能使用的模式是

(?s)^Application.*?(?=\R+Application|\z)
细节

?s-。现在匹配换行符 ^-线路起点 应用-一个词 .*? - 任何0+个字符,尽可能少,直到最左边出现 ?=\R+Application |\z-1+换行符\R+后跟Application,或|文件结尾\z。
你的意思是你需要?s^Application.*?=\R+Application |\z?是的,就是这样。请像repsonse一样发布,并解释de regex接受回复的原因。如果有帮助,请尝试此操作^应用程序[\s\s]+?=应用程序