假设我有以下文字:
new_item['uid']
我想捕获[
... ]
中的所有内容。因此,在这种情况下,请抓住'uid'
。通常我可以使用类似的东西:
要对此进行匹配(从左方括号开始并得到所有内容,直到右方括号为止)。但是如果没有字符类或vim中否定的字符类,我该怎么做?
答案 0 :(得分:1)
您可以使用.\{-}
代替.*?
进行惰性点匹配:
\[(.\{-})\]
答案 1 :(得分:1)
如果要使用(..)
创建捕获组,则需要非常神奇的模式,否则必须像BRE一样转义(
和)
。
因此,两者都在\1
中给出了匹配的部分:
\[\([^]]*\)
和({\v
告诉vim在非常神奇的模式下进行匹配)
\v\[([^]]*)
答案 2 :(得分:0)
除了其他答案,您可以使用\v\[\zs.{-}\ze\]
仅突出显示\zs
和\ze
中的文本,请参见:h \ze