2016-07-27 6 views
0

Ich habe diesen Text:Regex zum Hinzufügen eines Zeichens an der n-ten Position?

1111111111111111111111111111111111111111111111111 

wo ich Zeichen an der fünften Position hinzufügen müssen, dieses Ergebnis zu haben

11111A11111111111111111111111111111111111111111111 

Ich habe versucht, mit

(?<=.{5}) 

Ersetzen mit

A 

Es setzt A nach dem fünften Zeichen, aber weiter zu den nächsten fünf Zeichen.

Ich verwende Powergrep. Wie man es schafft, nach dem ersten Auftreten zu stoppen?

+1

Nicht sicher, wie PowerGREP funktioniert, aber schauen in seine ** globale Deaktivierung ** Modus. – rgoliveira

Antwort

1

Sie könnten nutzen die ^ Charakter anchor den regulären Ausdruck zu Beginn der Zeichenfolge:

(?<=^.{5}) 

Siehe regex tester

+0

Es funktioniert, danke. Irgendeine Möglichkeit, dies zu erweitern, so dass es Charakter A auf der 5. und 10. und 20. Position hinzufügen kann? Ich habe versucht (? <= ^. {5,10,20}), aber ändert nichts. – Jim8645

+1

In diesem Fall können Sie nicht mit '(? <=' Arbeiten. Stattdessen erfassen Sie die Ziffern und ersetzen sie wieder durch '\ 1' etc:' (^. {5}) (. {5}) (. { 10}) '=>' \ 1A \ 2A \ 3A' (https://regex101.com/r/bC6rF6/3) – trincot