尝试为 aaa!bb@123&xyz#-- 编写正则表达式



我想用一个空格替换字符串中的每个单独的字符,这个空格不在以下字符中,

  • 数字0到9
  • 大写和小写英文字母
  • 这些特殊字符: &'(),-._

例如,如果我的初始字符串是

aaa!bb@123&xyz#--

那么它应该变成

aaa bb 123&xyz --

有人能提供一个正则表达式来实现同样的目的吗?

您可以使用一个否定的字符集,并将所有不想用空格替换的字符都放进去。Rest任何字符都将替换为空格。以下是相同的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

正如您所看到的,#$不在否定字符集中,因此它们被替换为空格。

您可以使用.replaceAll来实现这一点。此方法查找字符串中的每个正则表达式匹配项,并用另一个字符串替换它们。

您的代码将如下所示:

String str = "Text/containing+invalid=characters";
String cleanStr = str.replaceAll("[^&'\(\),\-.0-9:A-Z_a-z]", " ");
System.out.println(cleanStr);

更多信息点击这里

相关内容

最新更新