我想用空格替换字符串中的每个字符,而不是在其中,
: &'(),-._
例如如果我的初始字符串是
aaa!bb@123&xyz#--
然后它应该变成
aaa bb 123&xyz --
有人可以提供实现它的正则表达式吗?
答案 0 :(得分:0)
您可以使用.replaceAll
来实现。此方法将查找字符串中的每个正则表达式匹配项,并将其替换为另一个字符串。
您的代码将如下所示:
String str = "Text/containing+invalid=characters";
String cleanStr = str.replaceAll("[^&'\\(\\),\\-.0-9:A-Z_a-z]", " ");
System.out.println(cleanStr);
更多信息here
答案 1 :(得分:0)
您可以使用取反的字符集,并将所有不想替换的字符都用空格替换。其余任何字符将被替换为空格。这是相同的Java代码。
String s = "abc#1$xyz";
System.out.println("Before: " + s);
System.out.println("After: " + s.replaceAll("[^\\w &'(),.:-]", " "));
输出以下输出,
Before: abc#1$xyz
After: abc 1 xyz
如您所见,#
和$
不在否定字符集中,因此将它们替换为空格。