Füge in jeder Zeile einen Buchstaben in die Mitte eines Textes ein, Notepad++

Füge in jeder Zeile einen Buchstaben in die Mitte eines Textes ein, Notepad++

Ich habe eine große Anzahl von Zeilen, die dies enthalten, zum Beispiel diesen Text: OU111_DI_Z006_1

Beachten Sie, dass einige Zeichen in jeder Zeile unterschiedlich sind und durch @ dargestellt werden. So: OU@@@_@@_Z0@@__@

Wie kann ich die Suchen-Ersetzen-Funktion verwenden, um das Zeichen X vor Z hinzuzufügen?

So: OU111_DI_XZ006_1

Antwort1

Im Ersetzungsfenster markierenRegulären AusdruckUnd

Finde was: (OU..._.._)(Z0.._.)

Ersetzen mit: \1X\2

http://docs.notepad-plus-plus.org/index.php/Regular_Expressions

Antwort2

Dies hängt von Ihren Daten ab. Sind die Zeichen „OU“ und „Z0“ eindeutig, um den Anfang jeder Teilzeichenfolge anzuzeigen, oder können diese zufällig angezeigt werden (z. B. OU222_Z0_Z055...)?

Wenn sie EINZIGARTIG sind und nirgendwo anders als am Anfang jeder Teilzeichenfolge auftauchen können, kann ein einfacher regulärer Ausdruck sehr allgemein funktionieren:

Find:  (OU.*)(Z0.*)
Replace:  \1X\2

Hier gruppieren Sie alles (.*), das mit OU beginnt, als "\1". Und alles, was mit Z0 beginnt, als "\2". (Die Klammern bilden die Gruppen.)

Die Ersetzungszeichenfolge besteht lediglich darin, ein X zwischen die Gruppen 1 und 2 einzufügen.

HINWEIS: Dies ist der Antwort von marbel82 sehr ähnlich, außer dass es allgemeiner ist, weil Sie nicht angeben, wie viele Unterstriche und Zeichen vorhanden sein müssen.

..

Wenn OU und Z0 jedoch keine eindeutigen Markierungen sind, müssen Sie Ihre Daten besser verstehen, um einen allgemeinen regulären Ausdruck für ihre Eigenschaften zu erstellen.

verwandte Informationen