Ich muss Zeichen aus einer Zeichenfolge entfernen, die nicht im Ascii-Bereich von 32 bis 175 liegen, alles andere muss entfernt werden.
Ich weiß nicht gut, ob RegExp die beste Lösung sein kann, anstatt etwas wie .replace () oder .remove () zu verwenden, um jedes ungültige Zeichen oder etwas anderes einzufügen.
Jede Hilfe wird geschätzt.
Sie können
verwenden %Vor% Die Regex besteht hier aus einer Zeichenklasse ( [...]
) bestehend aus allen Zeichen nicht ( ^
zu Beginn der Klasse) im Bereich von U + 0020 bis U + 00AF (32-175, ausgedrückt in hexadezimaler Schreibweise). Soweit reguläre Ausdrücke gehen, ist dies eine ziemlich einfache, aber kann jemand rätseln, der nicht sehr vertraut mit ihm ist.
Aber Sie können auch eine andere Route gehen:
%Vor%Das hängt wahrscheinlich hauptsächlich davon ab, was Sie mit Lesen besser können. Ohne viel Regex-Erfahrung würde ich sagen, dass die zweite klarer wäre.
Einige Leistungsmessungen, jeweils 10000 Runden in Sekunden:
%Vor%Also, meine Ansätze sind die langsamsten :-). Sie sollten wahrscheinlich mit der Antwort von xanatos gehen und diese in eine Methode mit einem schönen, klaren Namen einfügen. Für Inline-Nutzung oder schnell-und-schmutzig-Dinge oder wo Leistung spielt keine Rolle, würde ich wahrscheinlich die Regex.