Ale*_*mes 184 java regex non-alphanumeric
我尝试使用这个但没有工作 -
return value.replaceAll("/[^A-Za-z0-9 ]/", "");
Run Code Online (Sandbox Code Playgroud)
Mir*_*uta 231
使用[^A-Za-z0-9]
.
注意:删除空格,因为通常不会将其视为字母数字.
And*_*ffy 123
尝试
return value.replaceAll("[^A-Za-z0-9]", "");
Run Code Online (Sandbox Code Playgroud)
要么
return value.replaceAll("[\\W]|_", "");
Run Code Online (Sandbox Code Playgroud)
And*_*ess 60
您应该知道,[^a-zA-Z]
它将替换字符范围AZ/az中不属于自身的字符.这意味着特殊字符,如é
,ß
等,或西里尔字符和诸如将被删除.
如果不需要替换这些字符,请使用预定义的字符类:
str.replaceAll("[^\\p{IsAlphabetic}\\p{IsDigit}]", "");
Run Code Online (Sandbox Code Playgroud)
PS:\p{Alnum}
没有达到这个效果,它的作用相同[A-Za-z0-9]
.
eri*_*son 48
return value.replaceAll("[^A-Za-z0-9 ]", "");
Run Code Online (Sandbox Code Playgroud)
这将留下空间不变.我认为这就是你想要的.否则,从正则表达式中删除空格.
sau*_*rav 21
你也可以尝试这个更简单的正则表达式:
str = str.replaceAll("\\P{Alnum}", "");
Run Code Online (Sandbox Code Playgroud)
我创建了这个方法来创建文件名:
public static String safeChar(String input)
{
char[] allowed = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_".toCharArray();
char[] charArray = input.toString().toCharArray();
StringBuilder result = new StringBuilder();
for (char c : charArray)
{
for (char a : allowed)
{
if(c==a) result.append(a);
}
}
return result.toString();
}
Run Code Online (Sandbox Code Playgroud)
value.replaceAll("[^A-Za-z0-9]", "")
[^abc]
当插入符号^
作为方括号内的第一个字符出现时,它会否定该模式。该模式匹配除a或b或c之外的任何字符。
将关键字视为两个功能:
[(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
因此它将替换模式中未包含的所有字符
归档时间: |
|
查看次数: |
220597 次 |
最近记录: |