Заменить подчеркивание тире в URL с помощью регулярного выражения notepadd++
Хорошо, у меня есть это несколько статических HTML, и на каждом HTML URL-адреса сопровождаются подчеркиванием, я хочу заменить все URL, которые подчеркнуты с тире здесь фактические коды
1)
<a href="/category/how_to_tell_your_dad_that_you_are_pregnant/index.html">How to tell my dad that i am pregnant</a>
2)
< href="/premarital_sex/index.html">Premarital Sex</a>
должно быть
1)
<a href="/category/how-to-tell-your-dad-that-you-are-pregnant/index.html">How to tell my dad that i am pregnant</a>
2)
< href="/premarital-sex/index.html">Premarital Sex</a>
Я хочу заменить все URL-адреса на всех моих статических HTML, как я могу это сделать? или это вообще возможно?
я попробовал htaccess, но не повезло, так что мне просто придется использовать notepad++ или powergrep, но я не совсем уверен, как и с чего начать:(
заранее спасибо ребята
РЕДАКТИРОВАТЬ
Я думаю, что я рядом:
(href=")*[_](.+?">)
2 ответа
Вы можете легко обойти проблему отсутствующего вида бесконечной ширины в Notepad++ и Sublime Text с помощью \G
оператор.
использование
(\bhref="|(?!^)\G)[^"<_]*\K_
И заменить на -
,
Объяснение:
(\bhref="|(?!^)\G)
- определить крайнюю левую границу для соответствия: целое словоhref="
должно совпадать (\b
является границей слова) или соответствует позиции в конце предыдущего успешного соответствия (с(?!^)\G
)[^"<_]*
- соответствовать 0+ символов, кроме"
,<
а также_
\K
- пропустить весь текст, который мы нашли, так далеко от буфера_
- соответствовать только этому персонажу - и только это будет заменено.
Вам нужен другой редактор, который поддерживает внешний вид переменной длины. NP++ нет.
Таким образом, с помощью умного редактора, вероятно, вы можете сделать это: за один раз: Найти для этого: (?<=href="[^"]*)_(?=[^"]*")
и заменить их на это: -
,
В notepad++ вы можете сделать это вместо этого: Найдите это: (href="[^"]*)_(?=[^"]*")
и заменить их на это: \1-
, Но вам придется нажать "Заменить все" несколько раз. Т.е. у URL с наибольшим количеством подчеркиваний есть 10, тогда вы должны щелкнуть по нему 10 раз.