Что ж, проще всего использовать регулярное выражение и версию gsub
вашего любимого языка для замены всего, что не является «символом слова». Этот класс символов будет "\w
" в большинстве языков с Perl-подобными регулярными выражениями или "[A-Za-z0-9]
" в качестве простой опции в противном случае.
В частности, в отличие от некоторых примеров в других ответах, вы не хотите искать недействительные символы для удаления, но ищите действительные символы для сохранения. Если вы ищете недопустимых символов, вы всегда уязвимы для введения новых символов, но если вы ищете только допустимых символов, вы можете быть немного менее неэффективными (в этом случае вы заменили символ, которого на самом деле не было нужно), но по крайней мере вы никогда не ошибетесь.
Теперь, если вы хотите сделать новую версию максимально похожей на старую, вы можете подумать о замене. Вместо удаления, вы можете заменить символ или символы, которые вы знаете, чтобы быть в порядке. Но это достаточно интересная проблема, и, вероятно, это хорошая тема для другого вопроса.