用于在Vim中匹配属性和值的正则表达式

时间:2011-06-23 17:30:13

标签: xml regex vim

一直在寻找这个地方。假设我有一个像这样的XML块:

<leftcol>
    <block icon="tips" text="Is it right for you?" url="/support/feasibility.html" link="Feasibility              evaluation"/>
    <block icon="question" text="Interested?" url="/support/question.html" link="Ask a question"/>
    <block icon="docs" text="Want some details?" url="/docs/" link="View documentation"/>
    <block icon="box" text="Like It?" url="/purchase.html" link="Purchase online"/>
</leftcol>

我想使用Vim快速跳转到(或删除)属性及其值。这样做有什么好的正则表达式?

我尝试了显而易见的/ .*=".*?",但它过于贪婪 - 如果我在同一行上有两个属性,它会同时选择它们。

非常感谢任何帮助。我特意寻找正则表达式,而不是插件。

1 个答案:

答案 0 :(得分:5)

在vim非贪婪的操作符\{-}之前你可以搜索:

/ [a-z]\{-}=

匹配每个属性的LHS。

更新:根据OP的评论如下:

使用以下非贪婪搜索模式完全搜索/匹配属性,假设在属性的RHS上已经使用"

/[a-z]\{-}="[^"]\{-}"

要将光标移动到搜索模式的开头,请使用:

//

要将光标移动到搜索模式的末尾,请使用:

//e

最后删除整个搜索模式使用:

d///e