textpad正则表达式替换url字符串中的所有&符号以用于href

时间:2012-03-09 00:29:13

标签: regex textpad

仅使用textpad,regexp会找到什么&安培;或者在一个href内部并暂时替换它们(即使我知道正确的url编码会将它们留作实体)..还有一个可以在稍后整理后使用的密钥。我现在发现了第一个例子,但是多个&'的url params没有得到正确的清理,并且没有考虑用&编码器正确编码的项目。放大器;已经。

这就是我所拥有的:

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">

这样我就可以快速搜索和替换,然后将它们恢复到原来的状态,因为这只是为了验证,而不是为了保存。

谢谢!

1 个答案:

答案 0 :(得分: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. 环顾四周(?&lt; = ....)首先验证你是一个锚标记
  2. 移动该标记,直到找到href名称
  3. 移动非“,&lt;,&gt;,空格字符串寻找&amp;
  4. All&amp;然后找到并替换字符串。