
Ich habe viele URLs in WordPress-Seiten, die_(Unterstriche) wie folgt: https://wpg.meditationyoga.in/Peace_research_studies/ und müssen ersetzen_mit-(Strich), um Folgendes zu erhalten: https://wpg.meditationyoga.in/Peace-research-studies/
aber man muss Regex verwenden, der diese Ersetzung nur in URLs vornimmt und nicht beispielsweise in anderen Elementen wie id=”attachment_1076″ oder id=”grad_table”
Ich verwende das Plugin „Search Regex“. Was ist der reguläre Ausdruck für die obigen Ersetzungen?
Antwort1
Ich bin mir nicht 100% sicher, aber ich denke, wenn man sich diePlugines unterstützt „PHP“, d. h. Sie könnten es mit einem Muster wie diesem versuchen:
(?:https?\S+?(?=_)|\G(?!^))(?:[^ _]*)\K_
(?:
- Öffnen Sie die 1. Nicht-Erfassungsgruppe.https?
- Ordnen Sie „http“ wörtlich mit einem optionalen „s“ zu.\S+?
– Jedes Zeichen, das kein Leerzeichen ist, in einem Lazy Match.(?=_)
- Positiver Lookahead für einen Unterstrich.|
- Abwechselnd/ODER.\G(?!^)
- Behaupten Sie die Position am Ende des vorherigen Spiels, nicht am Anfang.)
- Schließen Sie die 1. Nichterfassungsgruppe.
(?:
- Öffnen Sie die 2. Nichterfassungsgruppe.[^ _]*
- Übereinstimmung mit null oder mehr Zeichen außer Leerzeichen oder Unterstrich.)
- 2. Nichterfassungsgruppe schließen.
\K_
- Setzt den Übereinstimmungspuffer zurück und sucht nach einem Unterstrich.
Sehen Sie sich die Online-Demo