我在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>
任何帮助都一如既往地非常感激,对于我对此缺乏尝试表示道歉,但正则表达式是我怀疑我能够实现这一目标的唯一方式,而且我对正则表达式几乎没有经验知识。
答案 0 :(得分:2)
试试这个正则表达式:
(?<=id=")([^"\n]+)"[^#\n]+#\K
<强>解释强>
(?<=id=")
- 正面向后搜索id="
([^"\n]+)
- 匹配任何字符的1 +次出现,既不是"
也不是换行符并在组中捕获"
- 按字面意思匹配"
[^#\n]+
- 匹配任意字符的1 +次出现,既不是#
也不是换行符#
- 按字面意思匹配#
\K
- 忘记到目前为止匹配的所有内容。在这里,我们得到了我们必须插入在第1组中捕获的内容的位置。更换后,