Potrzebuję oczyścić nazwy plików. Więc mam ten kod:Regex, aby dopasować dowolny znak nie słowny, ale minus
//\W_ is any non-word character (not [^a-zA-Z0-9_]).
Regex regex = new Regex(@"[\W_]+");
return regex.Replace(source, replacement);
Działa to dobrze, ale teraz nie chcę, aby usunąć minus (-), więc zmieniłem regex do tego:
[\W_^-]+
Ale to robi nie działa. Co mnie ominęło?
W przypadku korzystania z daszka ('^') w klasie znaków w dowolnym miejscu innym niż na początku, to traci swe specjalne znaczenie. A kiedy użyjesz go poprawnie, neguje wszystko w klasie postaci. Zamiast tego użyj ['[^ a-zA-Z0-9-] +'] (http://rubular.com/r/onJOpL9Fwk). – NullUserException
Dzięki. To działa. Pomyślałem, że można zrobić coś prostego z \ W, ale chyba nie. Jeśli dodasz komentarz jako odpowiedź, mogę go zatwierdzić. – Remy