我有一个文件,里面包含以下代码:
<a href="blah.com" rel="blahblah" style="textdecoration:none;">blah</a>
我想匹配 rel="blahblah"
。
但是当我使用 \rel=".*"
进行匹配时,它会匹配 rel="blahblah" style="textdecoration:none;"
。
我尝试过 rel=".*\{-\}"
,但会出现错误 nested \{
。
你可以使用:
rel=".\{-}"
\{-}
在VIM中用于非贪婪匹配
[^"]
代替.
。后者是“贪婪的”,会匹配尽可能多的字符。[d-r13579]
用于匹配“字符类”:在这种情况下,它可以匹配从d
到r
之间的任何小写字母或奇数数字。如果您以^
开头,则表示否定其含义。[^"]
表示除双引号外的任何字符,而"[^"]*"
表示两个双引号之间有任意数量的任意字符,但不包括双引号。/rel="[^"]
,但只返回了rel="b
。 - mazlix/rel="[^"]*"
。你需要星号来匹配引号中的所有内容。 - bandi[^"]
到底是做什么的?我以为里面的 "
是表示我正在寻找一个闭合的 "
。 - mazlix默认情况下,正则表达式匹配器是贪婪的。
s/rel=".\{-}"/aaaaaaa/
对我来说有效
{-} 表示短路表达式,以匹配最短的模式。
?
,则会显示嵌套的 \?
:/rel=".*\?"
。 - mazlix我发现使用\{-}
很困惑,所以在这种情况下,我通常会选择像/rel="[^"]*"
这样的东西。