vim搜索通配符匹配第一次出现

时间:2011-06-08 19:57:57

标签: regex search vim

我有一个文件 <a href="blah.com" rel="blahblah" style="textdecoration:none;">blah</a>

我想匹配rel="blahblah"

但当我\rel=".*"时,它匹配rel="blahblah" style="textdecoration:none;"

我尝试了rel=".*\{-\}",但错误nested \{

4 个答案:

答案 0 :(得分:22)

您可以使用:

rel=".\{-}"

\{-}用于VIM中的非贪婪匹配

答案 1 :(得分:3)

默认情况下,正则表达式匹配器很贪婪。

  s/rel=".\{-}"/aaaaaaa/

适合我

{ - }表示短路表达式以匹配最短的模式。

答案 2 :(得分:2)

尝试使用[^"]代替.。后者是“贪婪的”,会尽可能多地匹配字符。

regexps中的[d-r13579]用于匹配“字符类”:在这种情况下,dr范围内的任何小写字母或奇数位。如果你用^开始课程,那么它就会否定其含义。

因此[^"]表示除双引号外的字符,"[^"]*"表示两个双引号,它们之间有任意数量的任意字符,双引号除外。

答案 3 :(得分:0)

我发现使用\{-}令人困惑,所以在这种情况下,我通常会选择类似/rel="[^"]*"的内容。

相关问题