正则表达式不捕获最后一项停止

时间:2016-11-11 02:31:51

标签: regex

我正在尝试捕获[dockercloud_servers],直到下一个[(redis_servers的开头)开始。但是,我不想捕获[最后一个括号。

我尝试过?:,但我似乎无法忽略最后一个括号,任何想法?

链接: https://regex101.com/r/fYRiJR/1

OR:

正则表达式

(\[dockercloud_servers\]){1}(?:[^ ]+\[)

内容

[dockercloud_servers]
x
y
[redis_servers]
x
x

2 个答案:

答案 0 :(得分:1)

您必须在结尾处使用[进行正向前瞻,如下所示:

(?:\[dockercloud_servers\]){1}(?:[^ ]+)(?=\[)

演示:https://regex101.com/r/fYRiJR/3

或者,您可以通过编写单词的开头缩短代码,然后使用[\s\S]+捕获其余代码,直到[

\[docker[\s\S]+(?=\[)

演示:https://regex101.com/r/fYRiJR/4

答案 1 :(得分:1)

试试这个

(\[dockercloud_servers\].*)(?=\[redis_servers])

https://regex101.com/r/wmBoK3/1