Попробуйте использовать класс буквенно-цифровых символов: \w
, он должен соответствовать буквам, цифрам и подчеркиванию.
Также вы можете использовать специальный именованный класс \p{L}
(я не знаю, поддерживает ли парсер Java RegEx поддержкуЭто).Таким образом, в C # ваша задача может быть выполнена с использованием следующего кода:
var input = "informação 123 ?:#$%";
var result = Regex.Replace(input, @"[^\p{L}\s0-9]", string.Empty);
Regex [^\p{L}\s0-9]
означает: любой символ не в этом классе (все буквы, пробел, цифры).Тем самым он соответствует вашему примеру ?:#$%
, и мы можем заменить эти символы пустой строкой.