我有这样的代码:
<pre><code>Some <a href="">HTML</a> code</code></pre>
我需要在<pre><code></code></pre>
标记之间转义HTML。我有很多标签,所以我想 - 为什么不让正则表达式为我做。问题是我不知道怎么做。我见过许多使用Google和Stackoverflow的例子,但我无法使用。有人可以帮助我吗?
示例:
<pre><code>Some <a href="http">HTML</a> code</code></pre>
要
<pre><code>Some <a href="http">HTML</a> code</code></pre>
或者只是一个正则表达式,因此我可以逐个替换<pre><code>
和</code></pre>
标记之间的任何内容。我几乎可以肯定这可以做到。
答案 0 :(得分:1)
返回“<pre><code>
和</code></pre>
之间的事物”的正则表达式可能
/(?<=<pre><code>).*?(?=<\/code><\/pre>)/
这使用环绕表达式来分隔“匹配的东西”。通常在嵌套标签的情况下使用正则表达式充满了危险,你最好使用专门为解析xml,html等工作而设计的“真正的工具”。我自己是Beautiful Soup(Python)的忠实粉丝。不熟悉Notepad ++,所以不确定它的正则表达式是否与此表达式完全匹配。
答案 1 :(得分:1)
此正则表达式将匹配锚标记的各个部分 你需要放回去:
<pre><code>([^<]*?)<a href="(.*?)">(.*?)</a>(.*?)</code></pre>
查看live demo,它显示了它正确匹配,并且还显示了被捕获的各个部分,我们将在替换字符串中引用这些部分(见下文)。
使用上面的正则表达式进行以下替换:
<pre><code>\1<a href="\2">\3</a>\4</pre></code>
\1
,\2
等是正则表达式中捕获的组,它们将我们从匹配中保留的内容放回去。