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“
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>