Я нашел много похожих постов, но ни один из них не отвечает на мой вопрос. Я хотел бы заменить / удалить / изменить открытый и закрытый тег с определенным ключевым словом. в этом случае я пытаюсь удалить все теги, в котором 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>
Ответы:
Я пытаюсь удалить все теги, содержащие
href="#"
Меню «Поиск»> «Заменить» (или Ctrl+ H)
Установите «Найти что»
<a .*?href="#">(.*?)</a>
Установите «Заменить» на
\1
Включить «Регулярное выражение»
Нажмите «Заменить все»
До :
После :
Как указывает AFH в комментарии, есть лучшее регулярное выражение, которое будет перехватывать выражения, которые не были включены в пример данных.
Установите «Найти что»
<a .*?href="#" .*?>(.*?)</a>
Это будет соответствовать линиям , где Есть положения после
href="#"
(и до первого совпадения>
).Примечание:
Он не будет работать правильно, если
>
в поле значения последующего предложения есть какие-либо s (до>
сопоставления<a
)дальнейшее чтение
источник
href
так и раньше: для этого вам понадобится<a .*?href="#" .*?>(.*?)</a>
. На самом деле, это должно быть лучшим решением, так как он потерпит неудачу, если будет другое предложение, содержащееh
передhref
(например, вclass
илиid
значение). И то и другое потерпит неудачу, если>
в последующем предложении будут указаны значения в поле значения, и я не вижу простого решения для этого (маловероятного) случая.Спасибо Дэвид за ответ! Но на самом деле код:
<a .*?href="#">(.*?)</a>
не нашел никаких атрибутов в моем файле. Это может быть из-за некоторых других конфигураций или других версий notepad ++. Я должен был использовать этот код:источник