4

我有这样的代码:

<pre><code>Some <a href="">HTML</a> code</code></pre>

我需要转义标签之间的 HTML <pre><code></code></pre>。我有很多标签,所以我想 - 为什么不让正则表达式为我做这件事。问题是我不知道怎么做。我见过很多使用 Google 和 Stackoverflow 的例子,但我什么都不能用。这里有人可以帮助我吗?

例子:

<pre><code>Some <a href="http">HTML</a> code</code></pre>

<pre><code>Some &lt;a href=&quot;http&quot;&gt;HTML&lt;/a&gt; code</code></pre>

或者只是一个正则表达式,这样我就可以一个一个地替换<pre><code>and</code></pre>标记之间的任何内容。我几乎可以肯定这是可以做到的。

4

2 回答 2

2

此正则表达式将匹配您需要放回的锚标记的部分:

<pre><code>([^<]*?)<a href="(.*?)">(.*?)</a>(.*?)</code></pre>

查看现场演示,它显示它正确匹配,还显示了作为组捕获的各个部分,我们将在替换字符串中引用这些部分(见下文)。

使用上面的正则表达式进行以下替换:

<pre><code>\1&lt;a href=&quot;\2&quot;&gt;\3&lt;/a&gt;\4</pre></code>

, etc 是正则表达式中捕获的组\1\2它们放回了我们从比赛中保留的内容。

于 2013-07-27T05:31:32.607 回答
1

返回“和之间的事物”的正则表达式<pre><code>可以</code></pre>

/(?<=<pre><code>).*?(?=<\/code><\/pre>)/

这使用环视表达式来分隔“匹配的事物”。通常在带有嵌套标签的情况下使用正则表达式充满危险,最好使用专门为解析 xml、html 等工作而制作的“真实工具”。我自己是 Beautiful Soup (Python) 的忠实粉丝。不熟悉 Notepad++,所以不确定它的正则表达式方言是否完全匹配这个表达式。

于 2013-07-27T03:31:19.610 回答