すべての URL で _ を - に置き換える正規表現

すべての URL で _ を - に置き換える正規表現

WordPressのページには、_(アンダースコア) は次のようになります: https://wpg.meditationyoga.in/Peace_research_studies/ 交換する必要がある_-(ダッシュ) を入力すると次のようになります: https://wpg.meditationyoga.in/Peace-research-studies/

ただし、この置換を URL 内でのみ行う正規表現を使用する必要があります。たとえば、id=”attachment_1076″ や id=”grad_table” などの他の要素では使用しないでください。

Search Regex プラグインを使用しています。上記の置換の正規表現は何ですか?

答え1

100%確信しているわけではないが、プラグイン「PHP」をサポートしているので、次のようなパターンを試すことができます:

(?:https?\S+?(?=_)|\G(?!^))(?:[^ _]*)\K_
  • (?:- 最初の非キャプチャグループを開きます。
    • https?- オプションの「s」を使用して、「http」を文字通り一致させます。
    • \S+?- 遅延一致における、空白以外の文字。
    • (?=_)- アンダースコアの肯定的な先読み。
    • |- 交替/OR。
    • \G(?!^)- 前回の試合の開始時ではなく終了時に位置をアサートします。
    • )- 最初の非キャプチャ グループを閉じます。
  • (?:- 2 番目の非キャプチャ グループを開きます。
    • [^ _]*- スペースまたはアンダースコア以外の 0 個以上の文字と一致します。
    • )- 2 番目の非キャプチャ グループを閉じます。
  • \K_- 一致バッファをリセットし、アンダースコアを一致させます。

オンラインで見るデモ

関連情報