Bestimmte HTML-Tags entfernen/ändern NotePad++

Bestimmte HTML-Tags entfernen/ändern NotePad++

ich habe viele ähnliche Beiträge gefunden, aber keiner davon beantwortet meine Frage. Ich möchte das öffnende und schließende Tag durch ein bestimmtes Schlüsselwort ersetzen/entfernen/ändern. In diesem Fall versuche ich, alle Tags zu entfernen, die href="#" enthalten....

<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>

<a href="http://......">Dont remove this tag!</a>

Ich habe diesen Code, aber ich kann nicht herausfinden, wie ich den Text hinterlassen kann ...

find: <a[^h]*href="#"[^>]*> (skip content) </a>
replace: (same content)
or
replace: <a href="somthing"> (same content) </a>

Antwort1

Ich versuche alle Tags zu entfernen, die enthaltenhref="#"

  • Menü "Suchen" > "Ersetzen" (oder Ctrl+ H)

  • Setzen Sie "Suchen nach" auf<a .*?href="#">(.*?)</a>

  • Setzen Sie "Ersetzen durch" auf\1

  • „Regulärer Ausdruck“ aktivieren

  • Klicken Sie auf „Alle ersetzen“

    Bild

Vor:

<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>

Nach:

leave this text
leave this text too
<a href="http://......">Dont remove this tag!</a>

Wie betont vonAFHin einem Kommentar gibt es einen besseren regulären Ausdruck, der Ausdrücke erfasst, die nicht in den Beispieldaten enthalten waren.

  • Setzen Sie "Suchen nach" auf<a .*?href="#" .*?>(.*?)</a>

    Dies wird Zeilen abgleichen, in denen Klauseln enthalten sindnachdas href="#"(und vor dem ersten passenden >).

    Notiz:

    Es funktioniert nicht richtig, wenn sich >im Wertefeld einer nachfolgenden Klausel (vor dem >passenden <a) ein s befindet.


Weiterführende Literatur

Antwort2

Danke, David, für die Antwort! Aber tatsächlich <a .*?href="#">(.*?)</a>hat der Code: keine Attribute in meiner Datei gefunden. Das kann an anderen Konfigurationen oder anderen Versionen von Notepad++ liegen. Ich musste diesen Code verwenden:

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

verwandte Informationen