Найти и заменить 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.html
code2 = ')
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
говорит, чтобы взять текст из группы захвата и положить в текст замены.
Вы можете найти и заменить попытку. Имеет простой пользовательский интерфейс. Я часто использую его для поиска путей UNC в сценариях, которые изменились и должны быть отредактированы - идеальный инструмент для людей (таких как я), которые всегда испытывают трудности с RegExps;)