私はDjango Webアプリケーションでいくつかのレガシーテキストを提供しようとしています。それはかなりシンプルな範囲です。テキストにはいくつかのアマゾンURLがあり、私はそれらの末尾に私の?tag=xxx
識別子を書きたいと思う。Python:URLを見つけてクエリ文字列のペアを追加する
私はすぐに私のテキストを通過させることができるテンプレートフィルタを書いたが、私は正規表現ロジックを書くことに多少なりとも取り組んでいる。
t = text_from_template_engine
return re.sub(r'(https?://(?:www\.)?amazon\.co\.uk[\S]+)', r'\\\1?tag=xxx', t)
これは非常に基本的なレベルで動作するようですが、URLが既に(有機アマゾンのURLの多くは、デフォルトでそうであるように)クエリ文字列を持っている場合、私の代わりに疑問符のアンパサンドが必要になります。
すぐに2つの疑問符を検出し、2番目の疑問符を置き換えることがあります。私はその提案には開いています。
私が本当に探しているのは、置き換えられた文字列を返すと予想される別のメソッド(既存の疑問符を検出できる)に、見つかった文字列を渡すことができるregex-replaceです。 PHPのpreg_replace_callback
(など)のようなもの。それは存在しますか?
マインド...爆発...いつものように、私はRTFMする必要があります;) – Oli