Verwenden von Notepad++ Regex zum Entfernen von Ankern

Verwenden von Notepad++ Regex zum Entfernen von Ankern

Ich habe versucht, mir andere Antworten darauf anzusehen, und mein Gehirn explodiert einfach, wenn ich versuche, irgendetwas zu Regex zu lesen. Ich kann es einfach nicht verstehen, egal, wie oft ich es lese oder wie langsam.

Ich versuche, dies mit Notepad++ aus einer Datei zu entfernen:

<a style="text-decoration:none" href="/SOME RANDOM WORD">.</a>

Ich bin mir jedoch nicht sicher, welche Regex-Suchzeichenfolge ich in Notepad++ verwenden muss, um dies zu tun. Wo SOME RANDOM WORD steht, kann dies buchstäblich alles von beliebiger Länge sein, aber der Anfang und das Ende des Tags/der Seite, auf der es steht, sind gleich.

Ich möchte nur alle Instanzen von

<a style="text-decoration:none" href="/SOME RANDOM WORD">.</a>

und ersetzen Sie es durch nichts.

Antwort1

Geben Sie in der Zeile „Suchen nach“ Folgendes ein:

<a style="text-decoration:none" href=".+">\.</a>

Ersetzen durch: leer lassen.

Klicken Sie dann auf „Alle ersetzen“.

Der Schlüssel hier ist die Verwendung von .+„which means“, also das Finden eines oder mehrerer Zeichen von irgendetwas. Das bedeutet im Grunde, dass jede URL, deren Text identisch ist, aber mit einer beliebigen URL, gefunden und ersetzt wird. durch nichts. Es ist möglich, die URL oder andere Dinge herauszufiltern, aber da Ihr Beitrag spezifiziert hat, dass Sie die gesamte Zeichenfolge durch nichts ersetzen möchten, wurde diese Information nicht bereitgestellt, um Sie nicht noch mehr zu verwirren.

Stellen Sie sicher, dass Sie unten „Regulärer Ausdruck“ auswählen, aber ich denke, daran haben Sie bereits gedacht.

Außerdem müssen Sie Sonderzeichen wie das maskieren. Wenn Ihre Links anstelle eines . echten Text enthalten, müssen Sie diesen ebenfalls \.durch ersetzen .+.

Antwort2

Ich sende eine weitere Antwort, nicht weil ich die akzeptierte Antwort, die sehr gut ist, untergraben möchte, sondern weil Ihr Suchbegriff fast richtig war.

Die Verwirrung besteht darin, dass in Dateimasken *eine beliebige Zeichenfolge beliebiger Länge (einschließlich Null) gemeint ist, während in regulären Ausdrücken eine beliebige Anzahl von Vorkommen des vorherigen Musters gemeint ist. Sie haben also nach einer Zeichenfolge gefragt, die (nur) eine beliebige Anzahl von Schrägstrichen zwischen den Anführungszeichen in der href=Klausel enthält.

Was Sie brauchten, befand sich href="/.*"in Ihrem Suchausdruck, und hier kommt der andere große Unterschied zwischen Dateimasken zum Tragen, bei denen ?jedes einzelne Zeichen übereinstimmt, und regulären Ausdrücken, bei denen .verwendet wird .*und eine beliebige Anzahl beliebiger Zeichen angegeben wird.

Die unterschiedliche Verwendung von .bedeutet, dass >.</a>am Ende Ihres Suchausdrucks jedes Zeichen zwischen >und </a>übereinstimmt: Um nur einen Literalwert zu finden, .müssen Sie dem Suchausdruck mitteilen, dass Sie ihn mit einem Literalwert finden möchten ., und Sie tun dies, indem Sie dem .das sogenannte voranstellen.FluchtZeichen \. Somit \.entspricht dies einem Literal .und \*entspricht einem Literal *.

Ihr Suchstring würde einwandfrei funktionieren, wenn reguläre Ausdrücke dieselben Übereinstimmungen wie Dateimasken verwenden würden. Leider ist dies aber nicht der Fall und Sie benötigen Folgendes:

<a style="text-decoration:none" href="/.*">\.</a>

Wie Sie sehen, unterscheidet es sich kaum von dem, was Sie versucht haben, mit nur zwei zusätzlichen (aber wichtigen) Zeichen. Ich hoffe jedoch, dass meine Erklärung Ihnen die Zuversicht gibt, diese weiter zu verfolgen: Sie werden sie ganz sicher noch einmal brauchen.

Ich kann nicht leugnen, dass sie abschreckend sind, und ich kann keinen einfachen Weg empfehlen, obwohl Sie vielleicht findendieser Tester/nützlich (obwohl es als Sonderzeichen behandelt wird , dem ein Escape-Zeichen vorangestellt werden muss \– in manchen Kontexten ist dies der Fall, in Ihrem jedoch nicht. Berücksichtigen Sie dies also, wenn Sie es bei Ihrem Suchausdruck ausprobieren).

Lassen Sie sich nicht abschrecken, wenn die Ausdrücke Kauderwelsch zu sein scheinen: Ich arbeite seit Jahren mit ihnen und es gibt immer noch viele, die mir nicht klar sind, insbesondere die Prüfung auf Binärzahlen, die ein Vielfaches von 3 sind, in derWikipedia-Seite- Ich habe Erklärungen gefunden, aber selbst mit einem Abschluss in Mathematik kann ich den Ausdruck nicht im Detail verstehen.

Sie kennen sich mit Dateimasken aus und verfügen über einen Ausgangspunkt, indem Sie die für reguläre Ausdrücke erforderlichen einfachen Änderungen vornehmen.

verwandte Informationen