регулярное выражение для замены _ на - во всех URL-адресах

регулярное выражение для замены _ на - во всех 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_
  • (?:- Открытая 1-я группа без захвата.
    • https?- Буквальное соответствие «http» с необязательным «s».
    • \S+?- Любой символ, не являющийся пробелом, в ленивом сопоставлении.
    • (?=_)- Положительный просмотр вперед для подчеркивания.
    • |- Чередование/ИЛИ.
    • \G(?!^)- Займите позицию, которая была на момент окончания предыдущего матча, а не на момент его начала.
    • )- Закрыть 1-ю группу без захвата.
  • (?:- Открыта 2-я группа без захвата.
    • [^ _]*- Совпадение с нулем или более символами, кроме пробела или подчеркивания.
    • )- Закройте 2-ю группу без захвата.
  • \K_- Сбросьте буфер сопоставления и найдите соответствие подчеркиванию.

Смотреть онлайндемо

Связанный контент