Notepad ++ Entfernen eines neuen Linienmusters - Befehl suchen und ersetzen?

726
BecauseICanTBH

Ich möchte eine neue Zeile entfernen, die nach jedem Namen in einer Chatprotokolldatei erstellt wurde. Beispiel:

Person1:[space] their message Person2:[space] their message 

Also habe ich die erweiterte Suche in Suchen und Ersetzen festgelegt und suche nach der Zeichenfolge:

: \r 

Und stell es so ein, dass es ersetzt durch:

:[space] 

Es findet die Instanzen, nach denen ich suche, aber aus irgendeinem Grund wird der Text beim Ersetzen nicht aus der neuen Zeile entfernt, und er sagt, dass er erfolgreich ersetzt wurde. Ich habe versucht, das Leerzeichen aus dem Ersetzungstext zu entfernen, und es hat die Leerzeichen herausgenommen, aber der Text wurde immer noch nicht in eine Zeile gebracht.

Irgendwelche Vorschläge?

2
Es gibt keine Garantie, dass die letzten Symbole der Nachricht des Benutzers nicht `: [Leerzeichen]` sind. Aber ich sehe nicht den Weg, um zu unterscheiden, ist dieser Teilstring das Ende der Kopfzeile oder das Ende der Nachricht ... Ist die PersonN: [Leerzeichen] ein echter Kopfzeileninhalt oder sieht es aus wie: John: [Leerzeichen] ? Akina vor 5 Jahren 0
BecauseICanTBH - Siehe [Akzeptieren einer Antwort] (https://i.imgur.com/OZho1tT.png), um sicherzustellen, dass Sie wissen, wie das für die Lösung funktioniert, die Sie finden, um Antworten zu finden, die zur Lösung Ihres Problems beitragen Aktivieren Sie das Kontrollkästchen oben links in der Antwort, mit der Ihr Problem gelöst wird, und machen Sie es grün, um anzuzeigen, dass es sich um die Antwort handelt, die Sie akzeptiert haben, da dies der Fall sein sollte. Wenn Sie eine Frage stellen, erhalten Sie Antworten, und wenn Sie eine Antwort erhalten, die für Ihre Bedürfnisse geeignet ist, akzeptieren Sie diese Antwort einfach. Pimp Juice IT vor 5 Jahren 0

3 Antworten auf die Frage

3
fejyesynb

Finden : \r\nund ersetzen mit:[space]

Sie müssen den Wagenrücklauf (CR) und den Zeilenvorschub (LF) finden.

1
Toto
  • Ctrl+H
  • Finde was: :\h+\R
  • Ersetzen durch: : (ein Semikolon gefolgt von einem Leerzeichen)
  • Aktivieren Sie die Option Wrap around
  • Überprüfen Sie den regulären Ausdruck
  • Replace all

Erläuterung:

: : a semicolon \h+ : 1 or more horizontal spaces \R : any kind of linebreak (ie. \n, \r or \r\n) 

Ergebnis für gegebenes Beispiel:

Person1: their message Person2: their message  
0
Anaksunaman

Wie bereits in der anderen Antwort erwähnt, müssen Sie ändern \rzu \r\n. Dies liegt daran, dass Windows eine Kombination aus Wagenrücklauf ( CRin Notepad ++ oder \r) und Zeilenvorschub ( LFin Notepad ++ oder \n) verwendet, um neue Zeilen zu signalisieren.

In Bezug auf Ihr Problem behandelt Notepad ++ den Ersatz von \rwörtlich (der endgültige Ersatz ist also tatsächlich [space] \n). Und da andere Betriebssysteme entweder ein einzelnes \n(Linux) oder \r(der MacOS-Standard, wenn ich mich nicht irre) für "Newline" -Zeichen verwendet, behandelt Notepad ++ sie auch so (dh stellt sie als Zeilenumbrüche dar, daher kein "Bumping"). ).

Anmerkungen

  • Wenn Sie Formatierungszeichen (Registerkarten, Leerzeichen, Zeilenende) sehen müssen, können Sie sie mit Ansicht> Symbol anzeigen anzeigen .

  • Achten Sie darauf, haben Extendedoder Regular expressionmarkiert, Search Modewenn zu ersetzen.