Tho*_*mas 237
这取决于您定义为特殊字符的内容,但请尝试replaceAll(...):
String result = yourString.replaceAll("[-+.^:,]","");
Run Code Online (Sandbox Code Playgroud)
请注意,该^字符不能是列表中的第一个字符,因为您必须要转义它,否则它将意味着"除了这些字符之外的任何字符".
另注:该-字符必须是列表中的第一个或最后一个,否则你不得不逃避它或将它定义了一个范围(例如:-,,将意味着"范围内的所有字符:来,).
所以,为了保持一致性,而不是依赖于角色定位,你可能想逃避所有那些正则表达式中有特殊含义的字符(下面的列表是不完整的,所以要注意的其他人物,如(,{,$ 等) :
String result = yourString.replaceAll("[\\-\\+\\.\\^:,]","");
Run Code Online (Sandbox Code Playgroud)
如果你想摆脱所有的标点符号和符号,试试这个正则表达式:( \p{P}\p{S}请记住,在Java字符串中你必须逃避反斜杠:) "\\p{P}\\p{S}".
第三种方式可能是这样的,如果你可以准确定义字符串中应该留下的内容:
String result = yourString.replaceAll("[^\\w\\s]","");
Run Code Online (Sandbox Code Playgroud)
这意味着:替换不是单词字符的所有内容(在任何情况下为az,0-9或_)或空格.
编辑:请注意,还有一些其他模式可能会有所帮助.但是,我无法解释所有这些,所以看看regular-expressions.info的参考部分.
如Ray所建议的那样,对于"定义允许字符"方法的限制较少的替代方法:
String result = yourString.replaceAll("[^\\p{L}\\p{Z}]","");
Run Code Online (Sandbox Code Playgroud)
正则表达式匹配任何语言中不是字母的所有内容,而不是分隔符(空格,换行符等).请注意,您不能使用[\P{L}\P{Z}](大写字母P表示没有该属性),因为这意味着"所有不是字母或不是空格的东西",几乎匹配所有内容,因为字母不是空格,反之亦然.
有关Unicode的其他信息
一些unicode字符似乎由于编码它们的不同可能方式而导致问题(作为单个代码点或代码点的组合).有关更多信息,请参阅regular-expressions.info.
Ste*_*hen 18
这将替换除字母数字以外的所有字符
replaceAll("[^A-Za-z0-9]","");
Run Code Online (Sandbox Code Playgroud)
tur*_*oid 17
如此处所述 http://developer.android.com/reference/java/util/regex/Pattern.html
模式是编译正则表达式.在许多情况下,方便的方法,如
String.matches,String.replaceAll并且String.split将是更可取的,但如果您需要使用相同的正则表达式进行大量工作,则编译一次并重用它可能更有效.Pattern类及其伴侣Matcher还提供了比String公开的少量功能更多的功能.
public class RegularExpressionTest {
public static void main(String[] args) {
System.out.println("String is = "+getOnlyStrings("!&(*^*(^(+one(&(^()(*)(*&^%$#@!#$%^&*()("));
System.out.println("Number is = "+getOnlyDigits("&(*^*(^(+91-&*9hi-639-0097(&(^("));
}
public static String getOnlyDigits(String s) {
Pattern pattern = Pattern.compile("[^0-9]");
Matcher matcher = pattern.matcher(s);
String number = matcher.replaceAll("");
return number;
}
public static String getOnlyStrings(String s) {
Pattern pattern = Pattern.compile("[^a-z A-Z]");
Matcher matcher = pattern.matcher(s);
String number = matcher.replaceAll("");
return number;
}
}
Run Code Online (Sandbox Code Playgroud)
结果
String is = one
Number is = 9196390097
Run Code Online (Sandbox Code Playgroud)
omt*_*t66 14
尝试类的replaceAll()方法String.
BTW这里是方法,返回类型和参数.
public String replaceAll(String regex,
String replacement)
Run Code Online (Sandbox Code Playgroud)
例:
String str = "Hello +-^ my + - friends ^ ^^-- ^^^ +!";
str = str.replaceAll("[-+^]*", "");
Run Code Online (Sandbox Code Playgroud)
它应该删除你要删除的所有{'^','+',' - '}字符!
删除特殊字符
String t2 = "!@#$%^&*()-';,./?><+abdd";
t2 = t2.replaceAll("\\W+","");
Run Code Online (Sandbox Code Playgroud)
输出将是: abdd.
这很完美。
| 归档时间: |
|
| 查看次数: |
411197 次 |
| 最近记录: |