1

仅使用文本板,正则表达式会找到什么 &s; 或 &' 在 href 中并临时替换它们(即使我知道正确的 url 编码会将它们保留为实体).. 使用一个可以稍后在整理后使用的密钥。我现在找到了第一个实例,但是带有多个 & 的 url 参数没有得到正确的清理,并且没有考虑用 & 正确编码的项目。已经。

这是我所拥有的:

FIND WHAT: \(<a href="[^"]+?\)&

REPLACE WITH: \1-AMP-

我想要的是可以接受这个的东西:

<A HREF="http://domain/boo.php?dross1=foo&dross2=bar&amp;dross3=baz&dross4=alpha&dross5=beta&amp;dross6=delta">

并将其变成这样:

<A HREF="http://domain/boo.php?dross1=foo-AMP-dross2=bar-AMPENT-dross3=baz-AMP-dross4=alpha-AMP-dross5=beta-AMPENT-dross6=delta">

这样我就可以快速搜索和替换,然后将它们恢复到初始状态,因为这仅用于验证,而不是用于保存。

谢谢!

4

1 回答 1

0

我不确定如何在 textpad 中实现这一点,但是在 powershell 中可以这样做:

$String ='<A HREF="http://domain/boo.php?dross1=foo&dross2=bar&amp;dross3=baz&dross4=alpha&dross5=beta&amp;dross6=delta">'
$String -replace '(?<=<a[^<>]*href="[^"<> ]*?)&amp;',  "-AMP-"

产量

<A HREF="http://domain/boo.php?dross1=foo&dross2=bar-AMP-dross3=baz&dross4=alpha&dross5=beta-AMP-dross6=delta">

剖析正则表达式:

  1. 环顾四周 (?<= .... ) 首先验证您是锚标记
  2. 遍历该标记,直到找到 href 名称
  3. 遍历非"、<、>、空格字符的字符串寻找&
  4. 然后找到并替换所有 & 字符串。
于 2013-04-28T16:39:35.760 回答