
У меня есть много 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_
- Сбросьте буфер сопоставления и найдите соответствие подчеркиванию.
Смотреть онлайндемо