我不明白为什么如果给出以下行(带有设置列表的vi)
10.0.6.5^IVirtual^IVmware^IHTTP, MS SQL, Windows SVC^IcpHelpdesk $
为什么以下正则表达式:
^I.*?^I
与我上面的字符串'Virtual'不匹配?我在VI搜索中使用下面的正则表达式并替换
:%s/^I.*?^I/replace/g
如果我使用
,则返回相同字符串的匹配项^I.*^I
我会得到
10.0.6.5replaceIcpHelpdesk $
我试图用^I.*?^I
说明的是第一个标签字符(^I
)匹配任何内容(除了换行符之外的点)零次或多次(*?
)直到你使用制表符(^I
)
我不知道我错过了什么,任何帮助将不胜感激。谢谢
答案 0 :(得分:1)
你在这里谈论vim正则表达式吗?在这种情况下,非贪婪量词是\{-}
:
\t.\{-}\t
否则你可以通过不将制表符与否定组匹配来实现:
\t[^\t]*\t