用增量变量替换HTML文本元素 [英] Replacing HTML text elements with increment variable

查看:24
本文介绍了用增量变量替换HTML文本元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在下面的HTML部分中,每当找到文本时,我都要将其替换为增量变量:

<li class="cat-item">
<a href="#" >Beautiful Reclessness</a>
</li>
<li class="cat-item">
<a href="#" >Comfort vs. Appearance</a>
</li>
<li class="cat-item">
<a href="#" >Highlights of the Runway</a>
<ul class='children'>
<li class="cat-item">
<a href="#" >Christian Louboutin Show</a>
</li>
<li class="cat-item">
<a href="#" >Givenchy F/W 2016</a>
</li>
<li class="cat-item">
<a href="#" >Spring by Gaultier</a>

使用x++增量:

<li class="cat-item">
<a href="#" >x1</a>
</li>
<li class="cat-item">
<a href="#" >x2</a>
</li>
<li class="cat-item">
<a href="#" >x3</a>
<ul class='children'>
<li class="cat-item">
<a href="#" >x4</a>
</li>
<li class="cat-item">
<a href="#" >x5</a>
</li>
<li class="cat-item">
<a href="#" >x6</a>

在Notepad++或Vim(在> <之间查找)中是否有办法使用REGEX查找文本内容并将其替换为x计数器?

推荐答案

简单VIM答案:

  1. 打开文件-vim filename
  2. 设置便利变量-:let num=1
  3. 进行更换-:g/href/execute printf("normal! citx%d", num) | let num=num+1

:global命令允许用户执行与模式匹配的所有行(在本例中为href)的操作。我们要做的操作是将<a>标记内的文本更改为x,后跟num的内容,并递增num

execute让我们从字符串构建命令行;我经常与printf()组合,因为我觉得它更容易阅读。normal!是允许我们执行正常模式命令的Ex命令。cit是从正常模式"更改标记内部"的一种方式。然后,我们只需为其提供适当的替换文本(x%d)并递增计数器。


如果您想知道我是如何想到这一点的,这在可控震源中是一个相当成熟的模式。在实践中,我大概花了大约一分钟的时间来完成整个序列(如果我更频繁地使用它,速度会更快),所以这不是那种"花30分钟试图写一个好的正则表达式"的答案-这可以在现场编辑会话中完成,而不需要太多思考,如果编辑人员很好地掌握了vim基础知识的话。

这篇关于用增量变量替换HTML文本元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆