я нашел много похожих постов, но ни один из них не отвечает на мой вопрос. Я хотел бы заменить/удалить/изменить открывающий и закрывающий теги определенным ключевым словом. в этом случае я пытаюсь удалить все теги с 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>
решение1
Я пытаюсь удалить все теги, содержащие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>
Как отметилАФХв комментарии есть лучшее регулярное выражение, которое будет отлавливать выражения, не включенные в образец данных.
Установите «Найти что» на
<a .*?href="#" .*?>(.*?)</a>
Это будет соответствовать строкам, где есть предложенияпосле(
href="#"
и до первого сопоставления>
).Примечание:
Он не будет работать правильно, если
>
в поле значения последующего предложения (перед сопоставлением>
)<a
есть какие-либо символы s.
дальнейшее чтение
решение2
Спасибо Дэвиду за ответ! Но на самом деле код: <a .*?href="#">(.*?)</a>
не нашел никаких атрибутов в моем файле. Возможно, это из-за других конфигураций или разных версий notepad++. Мне пришлось использовать этот код:
Find: <a[^h]*href="#"[^>]*>(.*?)</a>
Replace: <a href="new_url">\1</a>