Fügt alle acht Stellen ein Komma hinzu

8

Gegeben die folgende Eingabe:

%Vor%

Ich versuche Folgendes zu erreichen:

%Vor%

Im Moment lautet die Arbeit, um dies zu erreichen, derzeit wie folgt:

%Vor%

Das Problem, das ich bekomme, ist, dass die Regex von rechts nach links liest. Ich habe ein JSFIDDLE erstellt, um das Problem zu zeigen. Das Ergebnis, das ich bekomme, ist etwas wie.

%Vor%

Schließlich, wenn ich die Pfeiltasten benutze, um mich zu bewegen, wirft es mich zurück zum Ende der Eingabe.

REGEX101

    
Dot Batch 16.04.2015, 14:01
quelle

2 Antworten

6

Verwenden von @Avinash regexp zusammen mit meine Antwort von dieser Frage , können Sie mit diesem Code erreichen, was Sie wollen:

%Vor% %Vor%

Verwenden Sie im Grunde die Regexp, um Ihre Änderung vorzunehmen. Stellen Sie sicher, dass Sie alle nicht einstelligen Zeichen entfernen, bevor Sie die regulären Ausdrücke mit Kommas ausführen.

Dann müssen Sie das Code-Snippet verwenden, um das Caret dort zu platzieren, wo es war, als der Wert ersetzt wurde.

    
Karl-André Gagnon 16.04.2015, 14:14
quelle
8

Sie können den folgenden negativen Lookahead-Regex verwenden.

%Vor%

DEMO

(\d{8}) erfasst alle achtstelligen Zeichen, aber nicht das letzte Zeichen. (?!$) negativer Lookahead, der bestätigt, dass auf die Übereinstimmung kein Ende des Linienankers folgt. Wenn Sie also die übereinstimmenden Zeichen durch die Gegenwart innerhalb der ersten Gruppe ersetzen, erhalten Sie mit plus , die gewünschte Ausgabe.

    
Avinash Raj 16.04.2015 14:05
quelle

Tags und Links