Notepad ++ Beim Versuch, ein Zeichen nach NUR dem ersten Leerzeichen in jeder Zeile hinzuzufügen

3275
David Williams

Ich habe 30.000 Textzeilen, die eine beliebige Anzahl von Leerzeichen enthalten. Ich muss nur den ersten Leerzeichen in jeder Zeile mit einem Zeichen versehen. Jeder, der etwas vorschlagen kann, wäre sehr dankbar.

1
Bitte [bearbeiten] und vor und nach Beispielen angeben. Ein paar Zeilen für jeden sollten ausreichen. DavidPostill vor 7 Jahren 0

2 Antworten auf die Frage

0
Dale

Versuchen Sie es mit TextPad. Sie können Makros aufzeichnen und dann wiedergeben. Zeichnen Sie also auf, was Sie für die erste Zeile tun möchten, und nachdem Sie die erste Zeile abgeschlossen haben, lassen Sie den Cursor am Anfang der nächsten Zeile. Dann spielen Sie einfach das Makro bis zum Ende der Datei. Oder halten Sie einfach die Wiedergabemakrotaste gedrückt.

https://www.textpad.com/

Danke, ich habe es versucht, aber der SPACE ist nicht immer an derselben Stelle in der Zeile. Das Makro zählt lediglich die Bewegungen, bevor der Charakter hinzugefügt wird. Es sucht nicht in jeder Zeile nach dem Leerzeichen. Andernfalls hätte das gut funktioniert David Williams vor 7 Jahren 0
Sie können den Platz in Ihrem Makro suchen. Führen Sie dies einfach durch, indem Sie suchen, wenn Sie Ihr Makro aufzeichnen. Dale vor 7 Jahren 0
Danke Dale, das hat gut funktioniert. Ich muss jetzt lernen, seitlich zu denken. -) David Williams vor 7 Jahren 0
Genial. Ich musste das tonnenweise tun, um Daten zu säubern. Bitte markieren Sie meine Antwort. :) Dale vor 7 Jahren 0
Oh Dale, schau dir meine Antwort an, denn wenn du ein solches Makro mehrmals benutzt hast, kannst du vielleicht selbst die Freude an regulären Ausdrücken kennenlernen. Wolfkin vor 7 Jahren 0
RegEx würde auch funktionieren Dale vor 7 Jahren 0
0
Wolfkin

Sie suchen nach regulären Ausdrücken. Als Erstes sollten Sie Ihre Suche in reguläre Ausdrücke umwandeln

Freude, weil ich glaube, ich weiß genau, wie ich das lösen kann

https://regex101.com/r/aW4gG2/1

Der gewünschte Ausdruck ist:
Suchen: (^.*?)( )
Ersetzen:\1#\2

Die Art und Weise, wie dies funktioniert, ist wie folgt in regulären Ausdrücken das ()Mittel "erfassen". Das bedeutet, dass diese hochspezifische Gruppe gefunden wird, und Sie können sie dann in der Ersetzung mit \ 1 oder \ 2 oder \ 3 referenzieren. Die Nummer beginnt bei 1 und Sie zählen von der offenen Paranthesis aus

^bedeutet, am Anfang der Zeile zu beginnen. (Weil Sie möchten, dass Ihr Insert den ERSTEN Platz abdeckt, suchen wir von vorn den ersten Platz.)

.*?Dieser Teil findet das erste Wort vor dem Leerzeichen. Dies geschieht, indem Sie in einer Gruppe ein beliebiges Zeichen ( .) so viele wie möglich machen ( *), aber die wenigsten, die erforderlich sind ?. Ohne das Fragezeichen erfassen Sie einfach alle Zeichen (einschließlich aller Leerzeichen).

( )Dieser Teil bedeutet, dass unsere zweite Gruppe das Leerzeichen nach dem ersten ist. Dies sollte der erste Raum sein. Dies ist, was wir unseren Charakter einfügen wollen.

Die Vertretung

\1#\2

\1bezieht sich auf den ersten Zeichensatz. Und das *im Ausdruck bedeutet, dass der Zeichensatz ein beliebiges Wort einschließlich 0 sein kann.

# ist das Einfügungszeichen

\2\ ist natürlich der Raum.

Das Ergebnis ist ein #Platz vor jedem ersten Platz. Wenn Sie es nach dem ersten Leerzeichen wünschen, müssen Sie lediglich die Substitution anpassen

\1\2#wird das #nach jedem ersten Leerzeichen pro Zeile setzen.


Dies ist die Kraft regulärer Ausdrücke. Ein einfaches Suchen und Ersetzen kann das Einfügen präziser durchführen als jedes Makro. Es ist flexibel, es ist schnell und die meiste Zeit ist es nicht so schwer.

Hier ist ein großartiges Starter-Tutorial, das erklärt, was RegEx ist und warum es nützlich ist. [ RegExOne ]. REO ist derjenige, der mich zum Verstehen gebracht hat

Dies ist ein Tutorial, das viele Leute empfehlen, dass ich ehrlich gesagt nicht viel verstehen konnte. [ RegEx.Info ]

Ich bin eigentlich nie wieder zu RegEx.info zurückgegangen. Ich bin direkt in Notepad ++ Dokumentation gesprungen, was an dieser Stelle eigentlich sehr hilfreich war. Das kann man natürlich mit [ RegEx101 ] testen . Das einzige, was Sie tun möchten, ist das Hinzufügen /gmdes Ausdrucks. Dann können Sie einfach ein Snippet in den TestString einfügen und so lange üben, bis Sie es richtig verstanden haben.