Вы должны знать, что [^a-zA-Z]
заменит символы, не являющиеся самими собой в диапазоне символов A-Z / a-z. Это означает, что специальные символы, такие как é
, ß
и т. Д., Или символы кириллицы, и такие будут удалены.
Если замена этих символов нежелательна, используйте вместо этого предопределенные классы символов:
someString.replaceAll("[^\\p{IsAlphabetic}^\\p{IsDigit}]", "");
PS: \p{Alnum}
не достигает этого эффекта, действует так же, как [A-Za-z0-9]
.