正则表达式,用于查找,复制和插入结尾

时间:2017-09-28 13:16:17

标签: html regex notepad++ dreamweaver

我在HTML中有一个大的TOC作为无序列表。列表中的每个锚标记都有自己的id属性。可能使用Dreamweaver或notepad ++我希望能够找到id属性,复制它并将其放置在href属性中设置的哈希(.html#)之后,以便长TOC将滚动到页面的位置已导航到。

所以对于下面的例子:

<li><a id="a4.9" href="trigger_marker.html#">Trigger marker</a> </li>
<li><a id="a4.10" href="timedelayarrow.html#">Time-delay arrow</a> </li>
<li><a id="a4.11" href="spectrumview.html#">Spectrum view</a> </li>

我希望结果如下:

<li><a id="a4.9" href="trigger_marker.html#a4.9">Trigger marker</a> </li>
<li><a id="a4.10" href="timedelayarrow.html#a4.10">Time-delay arrow</a> </li>
<li><a id="a4.11" href="spectrumview.html#a4.11">Spectrum view</a> </li>

任何帮助都一如既往地非常感激,对于我对此缺乏尝试表示道歉,但正则表达式是我怀疑我能够实现这一目标的唯一方式,而且我对正则表达式几乎没有经验知识。

1 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

(?<=id=")([^"\n]+)"[^#\n]+#\K

Click for Demo

<强>解释

  • (?<=id=") - 正面向后搜索id="
  • 之前的位置
  • ([^"\n]+) - 匹配任何字符的1 +次出现,既不是"也不是换行符并在组中捕获
  • " - 按字面意思匹配"
  • [^#\n]+ - 匹配任意字符的1 +次出现,既不是#也不是换行符
  • # - 按字面意思匹配#
  • \K - 忘记到目前为止匹配的所有内容。在这里,我们得到了我们必须插入在第1组中捕获的内容的位置。

更换后,

enter image description here