1

Я нашел много похожих постов, но ни один из них не отвечает на мой вопрос. Я хотел бы заменить / удалить / изменить открытый и закрытый тег с определенным ключевым словом. в этом случае я пытаюсь удалить все теги whit 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 ответа2

0

Я пытаюсь удалить все теги, содержащие 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)


дальнейшее чтение

0

Спасибо Дэвид за ответ! Но на самом деле код: <a .*?href="#">(.*?)</a> не нашел никаких атрибутов в моем файле. Это может быть из-за некоторых других конфигураций или других версий notepad++. Я должен был использовать этот код:

 Find:    <a[^h]*href="#"[^>]*>(.*?)</a>
 Replace: <a href="new_url">\1</a>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .