Обычно лучше иметь белый список, чем черный.
В Regex есть удобное \w
, которое фактически означает буквенно-цифровой плюс подчеркивание (некоторые варианты также добавляют в список акцентированные символы (á, é, ô и т. Д.), Другие - нет).
Вы можете инвертировать это, используя \W
для обозначения всего, что не буквенно-цифровое.
Так что замена \W
на пустую строку удалит все «специальные» символы.
В качестве альтернативы, если вам нужен другой набор символов, кроме буквенно-цифровых, вы можете использовать отрицательный класс символов: [^abc]
будет соответствовать всему, что не a
или b
или c
и [^a-z]
будет соответствовать всему, что не находится в диапазоне a,b,c,d...x,y,z
Эквивалент \w
равен [A-Za-z0-9_]
и, следовательно, \W
равен [^A-Za-z0-9_]