Удалить / изменить определенные теги HTML NotePad++
Я нашел много похожих постов, но ни один из них не отвечает на мой вопрос. Я хотел бы заменить / удалить / изменить открытый и закрытый тег с определенным ключевым словом. в этом случае я пытаюсь удалить все теги, в котором href="#"....
<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>
У меня есть этот код, но я не могу понять, как оставить текст...
find: <a[^h]*href="#"[^>]*> (skip content) </a>
replace: (same content)
or
replace: <a href="somthing"> (same content) </a>
2 ответа
Я пытаюсь удалить все теги, содержащие href="#"
Меню "Поиск" > "Заменить" (или Ctrl + H)
Установите "Найти что"
<a .*?href="#">(.*?)</a>
Установите "Заменить" на
\1
Включить "Регулярное выражение"
Нажмите "Заменить все"
До:
<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>
После:
leave this text
leave this text too
<a href="http://......">Dont remove this tag!</a>
Как указывает AFH в комментарии, есть лучшее регулярное выражение, которое будет перехватывать выражения, которые не были включены в пример данных.
Установите "Найти что"
<a .*?href="#" .*?>(.*?)</a>
Это будет соответствовать линиям, где есть пункты после
href="#"
(и до первого соответствия>
).Замечания:
Он не будет работать правильно, если есть какие-либо
>
s в поле значения последующего предложения (до>
согласование<a
)
дальнейшее чтение
Спасибо Дэвид за ответ! Но на самом деле код: <a .*?href="#">(.*?)</a>
не нашел никаких атрибутов в моем файле. Это может быть из-за некоторых других конфигураций или других версий notepad++. Я должен был использовать этот код:
Find: <a[^h]*href="#"[^>]*>(.*?)</a>
Replace: <a href="new_url">\1</a>