Regex 正则表达式don';无法捕获要停止的最后一项

Regex 正则表达式don';无法捕获要停止的最后一项,regex,Regex,我试图捕获[dockerloud\u服务器]直到下一个[(redis\u服务器的开始)。但是,我不想捕获[最后一个括号 我试过做?:,但我似乎不能忽略最后一个括号,有什么想法吗 链接: 或: Regex (\[dockercloud_servers\]){1}(?:[^ ]+\[) 内容 [dockercloud_servers] x y [redis_servers] x x 您只需在结尾处对[进行积极的前瞻,如下所示: (?:\[dockercloud_servers\]){1}(?

我试图捕获
[dockerloud\u服务器]
直到下一个
[
(redis\u服务器的开始)。但是,我不想捕获
[
最后一个括号

我试过做
?:
,但我似乎不能忽略最后一个括号,有什么想法吗

链接:


或:


Regex

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

[dockercloud_servers]
x
y
[redis_servers]
x
x

您只需在结尾处对
[
进行积极的前瞻,如下所示:

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

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

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

演示:

您只需在结尾处对
[
进行积极的前瞻,如下所示:

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

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

\[docker[\s\S]+(?=\[)
演示:

试试这个

(\[dockercloud_servers\].*)(?=\[redis_servers])
试试这个

(\[dockercloud_servers\].*)(?=\[redis_servers])
为什么不做
(\[dockercloud\u servers\])([^[]+)
…我认为添加
[^[]+
(在另一个捕获组中,作为同一组的一部分,等等)确实是获得所需内容所需的全部。为什么不做
(\[dockercloud\u servers\])([^[]+)
…我认为添加
[^[^[]+
(在另一个捕获组中,作为同一组的一部分,等等)是获得所需的全部。