Tentei usar isso, mas não funcionou.
return value.replaceAll("/[^A-Za-z0-9 ]/", "");
java
regex
non-alphanumeric
Alex Gomes
fonte
fonte
Respostas:
Use
[^A-Za-z0-9]
.Nota: removeu o espaço, pois isso normalmente não é considerado alfanumérico.
fonte
Experimentar
ou
fonte
return value.replaceAll("\\W", "");
Você deve estar ciente de que
[^a-zA-Z]
substituirá os caracteres que não estão no intervalo de caracteres AZ / az. Isso significa que os caracteres especiais comoé
,ß
etc, ou caracteres cirílicos e tal será removido.Se a substituição desses caracteres não for desejada, use classes de caracteres predefinidas:
PS:
\p{Alnum}
não alcança esse efeito, age da mesma forma que[A-Za-z0-9]
.fonte
[^\\p{IsAlphabetic}\\p{IsDigit}]
funciona bem.{IsDigit}
não funciona para mim e{Digit}
é que estou tentando fazer isso no Android. E o Android estáUNICODE_CHARACTER_CLASS
ativado por padrão. Obrigado pela autorização.Isso deixará os espaços intactos. Presumo que é isso que você quer. Caso contrário, remova o espaço da regex.
fonte
Você também pode tentar este regex mais simples:
fonte
str.replaceAll("[^\\p{Alnum}\\s]", "")
\\p{Alnum}\\p{Space}
.As expressões regulares do Java não exigem que você coloque uma barra (
/
) ou qualquer outro delimitador em torno do regex, em oposição a outras linguagens como Perl, por exemplo.fonte
Eu criei este método para criar nomes de arquivos:
fonte
Solução:
value.replaceAll("[^A-Za-z0-9]", "")
Explicação:
Olhando para a palavra-chave como duas funções:
[(Pattern)] = match(Pattern)
[^(Pattern)] = notMatch(Pattern)
Além disso, em relação a um padrão:
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
Portanto, ele substituirá todo o char NÃO incluído no padrão
fonte
Se você também deseja permitir caracteres alfanuméricos que não pertencem ao conjunto de caracteres ascii, como, por exemplo, tremados alemães, considere usar a seguinte solução:
Observe que o uso do sinalizador UNICODE_CHARACTER_CLASS pode ter uma imposição à penalidade de desempenho (consulte o javadoc deste sinalizador)
fonte
Método simples:
fonte
saída: ChlamydiasppIgGIgMIgAAbs8006
Github: https://github.com/AlbinViju/Learning/blob/master/StripNonAlphaNumericFromString.java
fonte
Usando o Guava, você pode combinar facilmente diferentes tipos de critérios. Para sua solução específica, você pode usar:
fonte
O CharMatcher da Guava fornece uma solução concisa:
fonte