Ersetzen / Entfernen von Zeichen, die nicht mit dem regulären Ausdruck übereinstimmen (.NET)

7

Ich habe einen regulären Ausdruck, um eine Zeichenkette zu validieren. Aber jetzt möchte ich alle Zeichen entfernen, die nicht mit meinem regulären Ausdruck übereinstimmen.

z. B.

%Vor%

Irgendwelche Ideen, wie ich die RegExpression benutzen kann, um die gültigen Zeichen zu bestimmen und alle anderen zu entfernen.

Vielen Dank

    
tif 27.05.2011, 15:28
quelle

3 Antworten

11

Ich glaube, Sie können das tun (Whitelist-Zeichen und alles andere ersetzen) in einer Zeile:

%Vor%

Technisch wird es das erzeugen: "Dies ist ein Beispieltext mit einigen ungültigen Zeichen - +" Das ist etwas anders als Ihr Beispiel (der zusätzliche Abstand zwischen dem - und +).

    
emfurry 27.05.2011, 15:40
quelle
9

Einfach so:

%Vor%

Das Entfernen der nicht übereinstimmenden Zeichen ist dasselbe wie das Beibehalten der übereinstimmenden Zeichen. Das machen wir hier.

Wenn es möglich ist, dass der Ausdruck in Ihrem Text mehrere Male übereinstimmt, können Sie Folgendes verwenden:

%Vor%     
Daniel Hilgarth 27.05.2011 15:29
quelle
1

Danke an Ersetze Zeichen, wenn nicht Antwort, die ich habe erstellt eine Hilfsmethode um nicht akzeptierte Zeichen zu entfernen .

Das zulässige Muster sollte im Regex-Format sein, erwarten Sie, dass sie in eckigen Klammern eingeschlossen sind. Eine Funktion fügt nach dem Öffnen der Squere-Klammer eine Tilde ein. Ich gehe davon aus, dass es nicht für alle RegEx funktioniert, die gültige Zeichensätze beschreiben, aber es funktioniert für relativ einfache Sets, die wir verwenden.

%Vor%     
Michael Freidgeim 28.10.2012 02:50
quelle

Tags und Links