1

すべての Amazon リンクにアフィリエイト ID を自動的に追加することを目標に、古い Greasemonkey スクリプトを変更および更新しようとしています。私は JavaScript に関しては初心者ですが、どの言語でも既存のスクリプトを変更するのは得意です。ここには、頭を包むことができない行が 1 つだけあります。

私が始めたスクリプトは古いので、構文に問題があるのか​​ 、リンク形式が変わったのかわかりません。変更できるように、この行が何をしているのかを理解するのを手伝ってくれませんか?

const affiliateLink = /(obidos.(ASIN.{12}([^\/]*(=|%3D)[^\/]*\/)*|redirect[^\/]*.(tag=)?))[^\/&]+/i;
4

2 に答える 2

9

さて、あなたはそれを求めました:)

正規表現を開始します。

/

グループ操作を開始します。

((

「obidos」というテキストの後に任意の1文字を検索します

オビドス。

別のグループ演算子を開きます。

((

「ASIN」というテキストに続いて任意の12文字を検索します

ASIN。{12}

別のグループ操作:

((

スラッシュではない0個以上の文字が続く:

[^ \ /] *

'='文字またはエンコードされたURL'='(%3D)を検索するグループ操作:

(= |%3D)

スラッシュではない0個以上の文字が続く:

[^ \ /] *

スラッシュが続きます(そして現在のグループを閉じます)。これは0回以上繰り返すことができます。

\ /)*

前のグループが見つかった場合、またはバーの右側のすべてが一致した場合に、パターンを一致させることができます。

|

「リダイレクト」というテキストの後にスラッシュではない0個以上のチャットアクターが続く場合に一致します。

リダイレクト[^\/] *

任意の1文字に一致し、オプションでテキスト「tag =」が続きます:

。(tag =)?

現在まだ内部にある2つのグループ操作を閉じます。

))

スラッシュまたは&ではない1つ以上の文字が続きます。

[^ \ /&] +

正規表現を閉じます。

/

于 2012-05-16T15:18:11.590 に答える
1

expresso のコピーをダウンロードしてください。これはこのための優れたユーティリティであり、これらすべてに役立ちます。次に、その中に正規表現を配置します(開始スラッシュと終了スラッシュの間のすべて)。

一致する文字列について説明しますが、多くのコンポーネントがあるため、かなり複雑です。自分で調べた方が簡単です。expresso は、各パターンのより英語の説明を提供します

于 2012-05-16T15:08:32.470 に答える