【发布时间】:2019-05-22 19:29:24
【问题描述】:
我正在尝试匹配其中包含某些文本的文本块。每个块都由标准的开始/结束文本模式明确定义。
在下面的示例中,我想匹配从“step start”到“step end”的第 1 步和第 3 步,因为它们包含文本“database:dev”。但是,我当前的正则表达式可以很好地匹配第 1 步,但随后会在单个匹配中匹配第 2 步和第 3 步。通过此处的示例可能更容易看到:https://regex101.com/r/56tfOQ/3/
我需要指定每个匹配项只能包含一个“步骤开始”,但我不知道该怎么做。
我目前使用的正则表达式是:
(?msi)step start.*?database:dev.*?step end
文本示例如下:
step start
name:step1
database:dev1
step end
step start
name:step2
database:test1
step end
step start
name:step3
database:dev2
step end
step start
name:step4
database:test2
step end
【问题讨论】:
标签: regex