Ich habe eine Zeichenfolge wie "AAA 101 B202 C 303" und ich möchte den Abstand zwischen Zeichen und Nummer loswerden, wenn es welche gibt. Nach der Operation sollte die Zeichenfolge also wie "AAA101 B202 C303" sein. Aber ich bin mir nicht sicher, ob Regex das tun könnte?
Irgendwelche Hilfe? Vielen Dank im Voraus.
Ja, das können Sie mit regulären Ausdrücken tun. Hier ist ein kurzes, aber vollständiges Beispiel:
%Vor%(Wenn Sie das viel tun, sollten Sie vielleicht einen regulären Ausdruck für das Muster kompilieren.)
\p{L}
entspricht einem Unicode-Buchstaben - Sie möchten vielleicht restriktiver sein.
Sie können etwas wie
tun %Vor%Und ersetzen durch
%Vor%Der Ausdruck kann verschärft werden, aber das obige sollte für Ihre Beispieleingabe funktionieren.
Was es tut, ist eine Gruppe mit Buchstaben (erster Satz von Klammern), dann ein optionaler Platz (\ s?) und dann eine Gruppe von Ziffern (\ d +) zu deklarieren. Die Gruppen können bei der Ersetzung verwendet werden, indem auf ihren Index verwiesen wird. Wenn Sie also den Speicherplatz entfernen möchten, ersetzen Sie ihn einfach durch $ 1 $ 2.
Obwohl es nicht so prägnant wie Regex ist, ist der C # -Code für so etwas ziemlich einfach und sehr schnell:
%Vor%Nur zum Spaß (weil das Programmieren manchmal Spaß macht): o) Ich benutze LINQ mit Aggregieren :
%Vor%