Как удалить из строки все не алфавитно-цифровые символы, кроме тире и пробелов?
606
Заменить [^a-zA-Z0-9 -]
на пустую строку.
Regex rgx = new Regex("[^a-zA-Z0-9 -]");
str = rgx.Replace(str, "");
-
должно быть в конце класса символов или экранировано с обратной косой чертой, чтобы предотвратить использование диапазона.replaceAll
функцию вместоreplace
.return Regex.Replace(str, "[^a-zA-Z0-9_.]+", "", RegexOptions.Compiled);
тот же основной вопрос""
&string.Empty
точно так же. stackoverflow.com/questions/151472/…Я мог бы использовать RegEx, они могут предоставить элегантное решение, но они могут вызвать проблемы с производительностью. Вот одно решение
При использовании компактного фреймворка (в котором нет FindAll)
Заменить FindAll на 1
1 комментарий ShawnFeatherly
источник
char[] arr = str.Where(c => (char.IsLetterOrDigit(c) || char.IsWhiteSpace(c) || c == '-')).ToArray();
Ты можешь попробовать:
Где
s
твоя строкаисточник
Использование System.Linq
источник
Регулярное выражение
[^\w\s\-]*
:\s
Лучше использовать вместо пробела (), потому что в тексте может быть вкладка.
источник
Основываясь на ответе на этот вопрос, я создал статический класс и добавил их. Думал, что это может быть полезно для некоторых людей.
Тогда методы можно использовать как:
источник
Хотите что-нибудь быстрое?
Это позволит вам указать, какие символы вы также хотите разрешить.
источник
Вот быстрое решение для выделения кучи без регулярных выражений, которое я и искал.
Небезопасное издание.
И для тех, кто не хочет использовать небезопасный или не доверяет взлому длины строки.
источник
Я принял другое решение, исключив управляющие символы, что было моей первоначальной проблемой.
Это лучше, чем занести в список все «особые, но хорошие» символы
это проще, так что я думаю, что лучше!
источник
Вот метод расширения, использующий ответ @ata для вдохновения.
или если вам нужны дополнительные символы, кроме дефиса ...
источник
Я использую вариант одного из ответов здесь. Я хочу заменить пробелы на "-", чтобы оптимизировать его для SEO, а также использовать строчные буквы. Также не ссылка system.web из моего уровня услуг.
источник
Вот очень краткая версия
источник
Есть гораздо более простой способ с Regex.
источник