VIM跨行非贪婪匹配

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

有时候,需要对文本中某个特定的块进行操作(如XML文件中 <frame> 块),比如删除整个指定的块


一、举例说明

1. XML文件

代码如下(示例):

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <frames>
	<frame>
	  <x>0</x>
	  <y>0</y>
	  <w>70</w>
	  <h>124</h>
	  <ox>-10</ox>
	  <oy>-1</oy>
	  <ow>70</ow>
	  <oh>124</oh>
	</frame>
	<frame>
	  <x>70</x>
	  <y>0</y>
	  <w>53</w>
	  <h>124</h>
	  <ox>-10</ox>
	  <oy>-2</oy>
	  <ow>53</ow>
	  <oh>124</oh>
	</frame>
	<frame>
	  <x>123</x>
	  <y>0</y>
	  <w>68</w>
	  <f>aaa</f>
	  <h>124</h>
	  <ox>-7</ox>
	  <oy>-2</oy>
	  <ow>68</ow>
	  <oh>124</oh>
	</frame>
	<frame>
	  <x>191</x>
	  <y>0</y>
	  <w>75</w>
	  <h>124</h>
	  <ox>-9</ox>
	  <oy>-2</oy>
	  <ow>75</ow>
	  <oh>124</oh>
	</frame>
	<frame>
	  <x>266</x>
	  <y>0</y>
	  <w>75</w>
	  <h>123</h>
	  <ox>-26</ox>
	  <oy>-3</oy>
	  <ow>75</ow>
	  <oh>123</oh>
	</frame>
  </frames>
</metadata>

2. 匹配特定块

代码如下(示例):

//匹配第二个frame块
/\s\+<frame>\_.\{-}<x>70<\_.\{-}frame>

\s\+<frame>:匹配frame块头
\_.:匹配换行
\{-}:实现*非贪婪匹配


总结

跨行的块,非贪婪匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值