Шаблон \w
соответствует подчеркиванию, а [^\w]
соответствует любому символу, кроме букв, цифр и подчеркивания.
Заменить на \p{Alnum}
:
String pattern = "[^\\p{Alnum}\\s?:().,'+/-]";
Примечание. Я ставлю дефис в конце класса символов, чтобы не экранировать его, и удаляю экранирующий \
из * 1010.* поскольку это не специальный метасимвол регулярного выражения.
См. демонстрационную версию Java regex .
Шаблон [^\\p{Alnum}\\s?:().,'+/-]
соответствует любому символу, но:
\p{Alnum}
- буквенно-цифровой [a-zA-Z0-9]
\s
- пробелы ?
- знак вопроса :
- двоеточие (
- символ (
)
- символ )
.
- точка ,
- aзапятая '
- одиночная кавычка +
- плюс /
- косая черта -
-дефис.