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\])([^[]+)
…我认为添加[^[^[]+
(在另一个捕获组中,作为同一组的一部分,等等)是获得所需的全部。