Найти и заменить HTML-код в Notepad++ с подстановочными знаками

Может ли кто-нибудь дать мне волшебный ответ на проблему моего 87-летнего отца? В течение многих лет, по крайней мере, в течение 10 лет он использовал следующий простой код JavaScript, чтобы открыть новое окно с домашней страницы, например:

<a href="javascript:openWin12('videok.html')">

но, наконец, мне удалось убедить его прекратить использовать этот код, потому что он портит результаты поиска Xenu, и мне надоели новые окна, появляющиеся при просмотре его сайта. Итак, я предложил ему использовать этот код для открытия новой вкладки или страницы вместо нового окна, например, так:

<a target="_blank" class="y" href="videok.html">

В конечном итоге ему настолько понравился этот новый код, что он хочет заменить все коды javascript на своем веб-сайте на одну (несколько сотен, если не тысяч) строк на сотнях страниц, так что теперь я пытаюсь найти способ сделать это для него в Notepad++ или MB-Search&Replace.

Итак, задача следующая:

Сценарий выглядит так в теории:

<a href="javascript:openWin12('videok.html')">

код1 подстановочный текст код2 код3

где code1= <a href="javascript:openWin12('

widcardtext = videok.htmlcode2 = ')code3 = ">

где code1 следует заменить на

<a target="_blank" class="y" href="

wildcardtext следует оставить в покое,

и code2 должен быть удален

code3 следует оставить в покое

Кстати, вот его веб-страница, чтобы доказать, что моя история реальна:www.lezo.hu

2 ответа

Решение

Вы должны иметь возможность использовать регулярное выражение в notepad++ для этого.

Найти:

<a href="javascript:openWin12\('([^)]+)'\)">

Заменить:

<a target="_blank" class="y" href="\1">

Если вы используете "Поиск в файлах", вы можете сделать это для всего дерева каталогов.

Как это работает:

Если вы не знакомы с регулярными выражениями, они представляют собой небольшой язык программирования, используемый для поиска (и замены) текста. Волшебство в этом здесь:

\('([^)]+)'\)

Это говорит,

  1. \( говорит найти (, \ необходимо, потому что ( особенный.
  2. затем ( говорит начать группу захвата. Это используется для замены.
  3. [^)]+ говорит найти один или несколько из чего угодно, кроме )
  4. ) заканчивает группу захвата
  5. \) соответствует )

Тогда в замен \1 говорит, чтобы взять текст из группы захвата и положить в текст замены.

Вы можете найти и заменить попытку. Имеет простой пользовательский интерфейс. Я часто использую его для поиска путей UNC в сценариях, которые изменились и должны быть отредактированы - идеальный инструмент для людей (таких как я), которые всегда испытывают трудности с RegExps;)

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