如何仅匹配vimregex中的第一个

问题描述 投票:0回答:2

{{dockerhub | d('test')}}/{{kafka_topic_exporter_repository|default('kafka-topic-exporter') }}

[这里我要2个数学{{ .* }},但是正则表达式{{\s*\(\S\+.*\S\+\)\s*}}匹配整行。有什么办法吗?

vim neovim
2个回答
0
投票

您的源文本通常可能是嵌套的内容,在这种情况下,正则表达式甚至都不是合适的解决方案。对于您显示给我们的确切数据,我将使用:

\{\{[^}]+\}\}

Demo


2
投票

Vim支持使用\{-}运算符进行非贪婪匹配:

\{-}

这将匹配第一个大括号内的文本:{{\zs.\{-}\ze}}

  • [dockerhub | d('test')\zs之后开始比赛。
  • [{{\ze之前结束比赛。
  • 如果需要捕获组,请将}}替换为.\{-}
© www.soinside.com 2019 - 2024. All rights reserved.