2012-03-09 2 views
1

テキストパッドのみを使用すると、どの正規表現が&アンプを見つけるでしょうか。または&のhrefの中に入れて、一時的に置き換えてください(正しいURLエンコーディングがエンティティとして残されていることはわかっていますが)。後でTIDYING後に使用できるキーを使用してください。私は今、最初のインスタンスが見つかりましたが、複数の&のurlパラメータは正しく消去されず、& ampで正しくエンコードされたアイテムは考慮されません。もうすでに。ここでtextpad regexp hrefのURL文字列のすべてのアンパサンドを置き換えます

は、私が持っているものだ:私はできる方法

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

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

と、このにそれを回す:私が欲しいもの

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

REPLACE WITH: \1-AMP- 

はこれを取るものですこれは検証のためだけで保存するためではないので、すぐに検索して置換して元の状態に戻すことができます。

ありがとうございます!

+0

私はリンク内のアンパサンド*の置換だけを絞り込むのは問題であると考えています* - これは先読みで行うことができますが、テキストパッドがそれらをサポートしているかどうかわかりません。 –

+0

簡素化すれば2つのsepアクションを実行できますか?しかし、ええ、両方のリンクでちょうどする必要があります、そうでなければ、インラインjs(そのため息)取得&& biffed取得し、&amperveryotherent; – HansOg

答えて

0

私はしかし、PowerShellでこれのように行うことができる、これはTextPadの中で達成されるかについてはよく分からない:正規表現を解剖

$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. そのタグによるの
  3. 動くことはhrefの名前に非の文字列による
  4. 移動が見つかるまで」、<、>、スペース文字はすべて&文字列が見つからと置き換えられ&
  5. を探しています。