【发布时间】:2013-11-20 23:04:37
【问题描述】:
我正在尝试编写一个正则表达式,用双星 ** 替换 & 字符 (&),但仅当包含在 html HREF 属性(绝对或相对)中时。另外,我需要它来匹配完整的"&" 字符串
例如,下面的 HTML 块:
<p>Ben & Jerry is <a href="http://www.domain.com?a=1&b=2&c=3">cool</a></p>
<p>Ben & Jerry is <a href="/index.htm?a=1&b=2&c=3">cool</a></p>
会变成
<p>Ben & Jerry is <a href="http://www.domain.com?a=1**b=**c=3">cool</a></p>
<p>Ben & Jerry is <a href="/index.htm?a=1**b=2**c=3">cool</a></p>
我可以替换所有“&”和所有 "&amp;"s,但在将其包含在链接中时遇到问题。
谁能帮忙?
【问题讨论】:
-
是否必须使用正则表达式?使用 HTML 解析器可能会更好。
-
恐怕它确实需要是一个正则表达式。这实际上将使用我们的内容管理系统的自定义语言,在一个无法使用 HTML 解析器的非常奇怪的设置中。我唯一可以使用的就是正则表达式。
-
<a(.*)href=(.*)&(.*)>(.*)</a>将匹配 -
这行不通 Maciej Dobrowolski。