如何在 Vi 编辑器中删除 xml 标签之间的值

Dil*_*ddi 5 vi vim

我想替换VI中以下xml标签之间的值以替换所有以AM结尾的列

<property name="EQ_BNKCRD_30PL_DPD_BAL_AM" desc="EQ_BNKCRD_30PL_DPD_BAL_AM">+000026928134473.000</property>
Run Code Online (Sandbox Code Playgroud)

只需在上面的标签中删除 +000026928134473.000

我努力了:%s/_AM">*.*</_AM"></g

但输出是这样的

<property name="EQ_RVLV_TRD_OPN_HI_LC_AM"><property>
Run Code Online (Sandbox Code Playgroud)

从上面的 desc 部分被删除,并且在属性标签中 / 被删除

小智 5

dit 
Run Code Online (Sandbox Code Playgroud)

正常模式下,即删除内部标签。如果您在标签周围执行“dat”删除,它也会删除该标签。


Mic*_*nes 0

您想要匹配_AM">从上到下的所有内容<。所以这应该有效:

:%s/_AM">[^<]*</_AM"></g
Run Code Online (Sandbox Code Playgroud)

重要的变化是从>*.*(实际上没有多大意义,因为它匹配任意数量的>符号,然后匹配后面的任何内容)到>[^<]*意味着匹配一个>,然后匹配任何不是<.