Я пытался использовать это, но не сработало
return value.replaceAll("/[^A-Za-z0-9 ]/", "");
java
regex
non-alphanumeric
Алекс Гомес
источник
источник
Ответы:
Использование
[^A-Za-z0-9]
.Примечание: убрал пробел, поскольку он обычно не считается буквенно-цифровым.
источник
Пытаться
или
источник
return value.replaceAll("\\W", "");
Вы должны знать, что
[^a-zA-Z]
заменит символы, не являющиеся самими собой в диапазоне символов AZ / az. Это означает, что специальные символы, такие какé
иß
т. Д., Или символы кириллицы, и такие будут удалены.Если замена этих символов нежелательна, используйте вместо этого заранее определенные классы символов:
PS:
\p{Alnum}
не достигает этого эффекта, он действует так же, как[A-Za-z0-9]
.источник
[^\\p{IsAlphabetic}\\p{IsDigit}]
работает хорошо.{IsDigit}
не работает для меня и{Digit}
делает то, что я пробую это на Android. И AndroidUNICODE_CHARACTER_CLASS
включен по умолчанию. Спасибо за оформление.Это оставит пробелы нетронутыми. Я полагаю, это то, что вы хотите. В противном случае удалите пробел из регулярного выражения.
источник
Вы также можете попробовать это более простое регулярное выражение:
источник
str.replaceAll("[^\\p{Alnum}\\s]", "")
\\p{Alnum}\\p{Space}
.Регулярные выражения Java не требуют от вас ставить символ переднего слеша (
/
) или любой другой разделитель вокруг регулярного выражения, в отличие от других языков, таких как Perl, например.источник
Я сделал этот метод для создания имен файлов:
источник
Решение:
value.replaceAll("[^A-Za-z0-9]", "")
Объяснение:
Глядя на ключевое слово как две функции:
[(Pattern)] = match(Pattern)
[^(Pattern)] = notMatch(Pattern)
Более того, в отношении шаблона:
A-Z = all characters included from A to Z
a-z = all characters included from a to z
0=9 = all characters included from 0 to 9
Поэтому он заменит все символы, НЕ включенные в шаблон
источник
Если вы хотите также разрешить алфавитно-цифровые символы, которые не относятся к набору символов ascii, как, например, немецкие умлауты, вы можете использовать следующее решение:
Обратите внимание, что использование флага UNICODE_CHARACTER_CLASS может привести к снижению производительности (см. Javadoc этого флага)
источник
Простой метод:
источник
вывод: ChlamydiasppIgGIgMIgAAbs8006
Github: https://github.com/AlbinViju/Learning/blob/master/StripNonAlphaNumericFromString.java
источник
Используя Guava, вы можете легко комбинировать различные типы критериев. Для вашего конкретного решения вы можете использовать:
источник
CharMatcher от Guava предлагает краткое решение:
источник