簡體   English   中英

如何在vim中搜索此模式?

[英]How to search this pattern in vim?

/'text': '.+'

在VIM中,我想在兩種情況下匹配“文本”中的“ abc”和“ a”:

'text': 'abc', 'url': 'http...'
'text': 'a', 'title': 'dog'

我想在冒號后的單引號中匹配至少一個字符。 這似乎不起作用。

我知道了。 這工作了!

/'brand': '[^']\+'

之所以不起作用,是因為必須對+原子進行轉義,以使其具有vim的正則表達式風格的特殊含義。 現在,這意味着緊隨其后的是文字加號 但是,一旦逃脫,就意味着至少一個,但要盡可能多 所以你想要這個:

/'text': '.\+'

但是,這產生了新的問題。 .+將匹配盡可能多的字符,包括單引號。 所以最終匹配

abc', 'url': 'http...'

代替

abc'

因此,您想使用+非貪婪等價物\\{-1,} 嘗試這個:

/'text': '.\{-1,}'

當然,您也可以打開magic選項並執行以下操作:

/\v'text': '.{-1,}'

可以在vimregex.com上找到有關vim regex的完整概述。 我用它所有的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM