首页 > 解决方案 > 正则表达式:捕获块以文本中的“某物”开头

问题描述

我需要一个正则表达式来聊天 2 组:成功(文本块的开头)和所有后续,直到下一个带有 3 个成功块的成功文本示例:

Success        blablabla blablabla blablabla blablabla blablabla blablabla
blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla
blablabla blablabla

Success        blablabla blablabla blablabla blablabla blablabla blablabla
blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla 

blablabla
blablabla blablabla


Success        blablabla blablabla blablabla blablabla blablabla blablabla  blablabla blablabla blablabla blablabla blablabla blablabla
blablabla blablabla
blablabla blablabla blablabla blablabla 



blablabla blablabla
blablabla blablabla

此正则表达式将块停止到 first \n

(Success|Error|Critical|Warning)\s{8}((.*|\n*?|\r*?|[\r\n]*?)*)

标签: regex

解决方案


许多可能性之一是(使用和multiline启用):verbosesingleline

^(Success|Error|Critical|Warning)
.+?
(?=^(?:Success|Error|Critical|Warning)|\Z)

在 regex101.com 上查看演示


推荐阅读