Erläuterung

Erläuterung

Ich habe versucht, danach zu suchen und es auszuprobieren, aber ich konnte es nicht herausfinden.

In Notepad++ habe ich eine Zeile wie:

102.

oder

12

und ich möchte die ganze Zeile löschen (also bräuchte ich wohl \n\r) und alle diese Arten von Zeilen, wie könnte ich das machen? (Ich weiß nicht, ob es eine Dezimalzahl, eine Zwei- oder eine Dreikommazahl ist und ob ein Punkt dahinter steht oder nicht).

Antwort1

Mir ist nicht 100 % klar, was Ihre Anforderungen sind (das heißt, was der mögliche Inhalt der zu löschenden Zeilen ist), aber ich habe einen regulären Ausdruck erstellt, der auf der Annahme basiert, dass die Zeile mit 1 bis 3 Zahlen beginnt, gefolgt von einem optionalen Punkt, und dass die Zeile sonst nichts enthält (Anfang oder Ende).

Finde was :^\d{1,3}\.?\r?\n?

Ersetzen durch: (leer)

Getestet mit folgendem Datensatz

102.
102
12
12
1.
1
9999
ab21.
8442.

das hinterlässt

9999
ab21.
8442.

Erläuterung

^ist ein Sonderzeichen, das nur mit dem Anfang der Zeile übereinstimmt. Damit wird sichergestellt, dass das Muster nicht einfach am Ende einer längeren Zeile steht.

\dwird verwendet, um jeden numerischen Wert (also 0-9) abzugleichen.

{1,3}wird verwendet, um die vorherige Anweisung (in diesem Fall \d) zu ändern und um die Mindest- und Höchstzahl anzugeben, mit der diese Anweisung übereinstimmen soll. Diese Zeile besagt also, dass Sie eine Zahl zwischen 1 und 3 Mal (einschließlich) abgleichen möchten.

\.wird verwendet, um das Punktzeichen abzugleichen. .ist ein Sonderzeichen in regulären Ausdrücken, das verwendet wird, um jedes Zeichen abzugleichen (außer standardmäßig einem Zeilenumbruch, obwohl es in Notepad++ eine Option gibt, dieses Verhalten zu ändern). Aus diesem Grund müssen wir es mit einem Backslash maskieren, um sicherzustellen, dass es als .„das Zeichen“ und nicht als .„das übereinstimmende Muster“ betrachtet wird.

?wird verwendet, um die letzte Anweisung ähnlich wie zu ändern {1,3}, dieses Mal wird es jedoch verwendet, um auszudrücken, dass die vorherige Anweisung ( [.]) optional ist (technisch gesehen bedeutet es, dass es 0 bis 1 Mal abgeglichen werden soll, aber das Endergebnis ist dasselbe).

\r?\n?wird verwendet, um die neue Zeile abzugleichen, wie Sie bereits erwähnt haben. Der reguläre Ausdruck würde auch ohne dies funktionieren, aber er würde die Zeile nicht entfernen, sondern nur löschen (und eine leere Zeile hinterlassen). Indem beides optional gemacht wird \r, \nwird dies zwischen Windows, Linux und Mac portierbar.

Der Grund, warum wir das Replace with :Feld leer lassen, liegt einfach darin, dass wir nicht möchten, dass etwas in die Zeile zurückgeht, die wir löschen.

Hoffentlich ist dies, wonach Sie gesucht haben. Wenn nicht, weist es Sie in die richtige Richtung.

verwandte Informationen