在末尾查找、复制和插入的正则表达式
Regular expression to find, copy and insert at end
我在 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>
一如既往地非常感谢您的帮助,对于我在这方面缺乏尝试表示歉意,但正则表达式是我怀疑我可能能够实现这一目标的唯一方法,而且我对正则表达式几乎没有经验知识。
试试这个正则表达式:
(?<=id=")([^"\n]+)"[^#\n]+#\K
解释:
(?<=id=")
- 正后视搜索前面有 id="
的位置
([^"\n]+)
- 匹配出现 1 次以上既不是 "
也不是换行符的任何字符,并将其捕获到组 中
"
- 按字面意思匹配 "
[^#\n]+
- 匹配出现 1 次以上既不是 #
也不是换行符 的任何字符
#
- 按字面意思匹配 #
\K
- 忘记到目前为止匹配的所有内容。在这里,我们得到了我们必须插入在第 1 组中捕获的内容的位置。
替换后,
我在 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>
一如既往地非常感谢您的帮助,对于我在这方面缺乏尝试表示歉意,但正则表达式是我怀疑我可能能够实现这一目标的唯一方法,而且我对正则表达式几乎没有经验知识。
试试这个正则表达式:
(?<=id=")([^"\n]+)"[^#\n]+#\K
解释:
(?<=id=")
- 正后视搜索前面有id="
的位置
([^"\n]+)
- 匹配出现 1 次以上既不是"
也不是换行符的任何字符,并将其捕获到组 中
"
- 按字面意思匹配"
[^#\n]+
- 匹配出现 1 次以上既不是#
也不是换行符 的任何字符
#
- 按字面意思匹配#
\K
- 忘记到目前为止匹配的所有内容。在这里,我们得到了我们必须插入在第 1 组中捕获的内容的位置。
替换后,