回答
这取决于你定义为特殊字符,但尝试replaceAll(...)
:
String result = yourString.replaceAll("[-+.^:,]","");
注意,^
字符不能在列表中的第一个,因为你那么要么逃跑呢或者它意味着“除这些字符以外的任何字符”。
另注:-
字符必须是列表中的第一个或最后一个,否则你不得不逃避它或将它定义了一个范围(例如:-,
将意味着“范围内的所有字符:
到,
)
因此,为了保持一致性而不依赖于字符定位,您可能希望转义所有那些在正则表达式中具有特殊含义的字符(以下列表不完整,因此请注意其他字符如(
,{
,$
等):
String result = yourString.replaceAll("[\\-\\+\\.\\^:,]","");
如果你想摆脱所有的标点和符号的,试试这个正则表达式:\p{P}\p{S}
(记住,Java中的字符串,你不得不逃回斜线:"\\p{P}\\p{S}"
)。
第三种方法可以是这样的,如果你能确切地定义什么应该在你的字符串中左起:
String result = yourString.replaceAll("[^\\w\\s]","");
这意味着:代替一切,是不是一个单词字符(AZ在任何情况下, 0-9或_)或空格。
编辑:请注意,有一些其他模式可能会有帮助。但是,我无法全部解释它们,因此请参阅regular-expressions.info的参考部分。
这里的限制较少的替代品“定义允许的字符”的方法,如建议由雷:
String result = yourString.replaceAll("[^\\p{L}\\p{Z}]","");
正则表达式匹配的一切,这是不以任何语言的信,而不是一个分隔符(空格,换行符等)。请注意,您不能使用[\P{L}\P{Z}]
(大写字母P表示不具有该属性),因为这意味着“所有不是字母或空格”,几乎匹配所有内容,因为字母不是空格,反之亦然。
上的Unicode
附加信息的一些Unicode字符似乎会由于不同的可能的方式来对其进行编码(作为单个码点或代码点的组合)的问题。有关更多信息,请参阅regular-expressions.info。
尝试replaceAll()
方法的String
类。
BTW这里是方法,返回类型和参数。
public String replaceAll(String regex,
String replacement)
例子:
String str = "Hello +-^ my + - friends^^^-- ^^^ +!";
str = str.replaceAll("[-+^]*", "");
应该删除所有{ '^', '+', ' - '},你想删除字符!
在Java中使用String.replaceAll()
方法。 replaceAll应该足够适合您的问题。
如这里所描述 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;
}
}
结果
String is = one
Number is = 9196390097
您可以删除单个字符如下:
String str="+919595354336";
String result = str.replaceAll("\\\\+","");
System.out.println(result);
OUTPUT:
919595354336
如果你只是WA nt在java中进行文字替换,使用Pattern.quote(string)
将任何字符串转义为文字。
myString.replaceAll(Pattern.quote(matchingStr), replacementStr)
要删除专责事务字符
字符串T2 = “@#$%^ * &() - ';!?,/> < + abdd”;
t2 = t2.replaceAll(“\\ W +”,“”);
输出将是:abdd。
这个效果很好。
这将替换所有字符,除了字母数字
replaceAll("[^A-Za-z0-9]","");
- 1. 如何从字符串中删除特殊字符
- 2. 如何从字符串中删除特殊字符并创建新字符串?
- 3. 从R中的字符串中删除所有特殊字符?
- 4. 从excel中删除指定字符串中的特殊字符
- 5. 从Bash中的字符串中删除所有特殊字符
- 6. R如何删除字符串中的特殊字符?
- 7. 如何从具有多种特殊字符的字符串中删除特定的特殊字符
- 8. 从阿拉伯文字符串c中删除特殊字符#
- 9. 从插入的字符串中删除特殊字符?
- 10. Python /从字符串中删除特殊字符
- 11. Zend:从字符串中删除特殊字符
- 12. 从字符串中删除的特殊字符的jQuery
- 13. 从字符串中删除空格和特殊字符
- 14. 如何删除带有特殊字符的字符串结尾?
- 15. 如何从字符串中删除特殊字符,如单引号?
- 16. PHP代码字符串替换特殊字符删除字符
- 17. 从字符串末尾删除特殊字符
- 18. 如何从java中的字符串中删除所有特殊字符?
- 19. 从URL中删除特殊字符
- 20. 从URL中删除特殊字符.htaccess
- 21. 从powershell中删除特殊字符
- 22. 从teradata coloumn中删除特殊字符
- 23. 在Python中删除字符串中的特殊字符
- 24. 删除R中字符串中的特殊字符
- 25. 在.htaccess中删除查询字符串中的特殊字符
- 26. 删除特殊字符
- 27. 特殊字符删除'sed'
- 28. 删除特殊字符?
- 29. 删除fscanf字符串中的特殊字符C
- 30. 删除字符串中的特殊字符
你显然已经知道什么是正则表达式是基于你如何标记你的问题。你有没有尝试阅读'String'类的文档?特别是,查找“正则表达式”一词;有几种方法,有点想法应该告诉你如何继续...... :) –
“特殊字符”这个短语被过度使用,几乎完全没有意义。如果你的意思是,“我有这个**特定**字符的列表,我想删除”,然后按照托马斯的建议,用正则表达式字符类和'replaceAll'形成你的模式。如果您有更深奥的要求,请编辑问题。 :) –
那些不是特殊字符... 这些是:äâêíìéè,因为它们不是你常见的1字节字符类型,例如 - + ^是...... 无论如何,正如Ray所说的,要么为他们做一个'replaceAll',要么对字符串进行解析,把不是你想要取出的字符的字符添加到另一个字符串中,最后只需要对你要返回的字符串进行+ =。 –