Заменить подчеркивание тире в 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 раз.

Другие вопросы по тегам