如何删除除“ - _”之外的字符串中的特殊字符。 现在我用:在java中删除字符串中的特殊字符?
replaceAll("[^\\w\\s]", "")
它删除所有特殊字符,但我想保持“ - _”。谁能告诉我该怎么办?
如何删除除“ - _”之外的字符串中的特殊字符。 现在我用:在java中删除字符串中的特殊字符?
replaceAll("[^\\w\\s]", "")
它删除所有特殊字符,但我想保持“ - _”。谁能告诉我该怎么办?
这可能帮助:
replaceAll("[^a-zA-Z0-9_-]", "");
使用此replaceAll("[\\w\\s\\-\\_\\<.*?>]", "")
;
Pattern pt = Pattern.compile("[^a-zA-Z0-9_-]");
Matcher match = pt.matcher(c);
while (match.find()) {
String s = match.group();
c = c.replaceAll("\\" + s, "");
}
考虑这个
我怀疑你需要分配结果(如果你不这样做),因为replaceAll()
返回新字符串,而不是更新的字符串(字符串是不可改变的)
str = str.replaceAll("[^\\w\\s-]", "");
还要注意的是,正则表达式是相当简单:
不需要在字符类中跳过破折号-
:当作为字符类中的字面值使用时,它必须是第一个或最后一个(否则它表示范围,如a-z
等)。
没有必要提及下划线可言,因为它是已经上市:\w
包括下划线!
String str="[email protected]_- abc";
String s=str.replaceAll(" [^a-zA-Z_-]+ ", "");
System.out.println(str);
它将替换给定字符串中的特殊字符和空格。
输出将是:owlabc_-
你认为什么“特殊”? –