我正在尝试清理文件中的某些数据。 有一个名字"包含带名称的字符串的列,其中一些包含符号lile" /" " @" ,而其他人包含破折号( - )或"。"。允许使用破折号和点数。
示例:Gustav Mag $ nus Oswald,Clement Fleevle Fust-Kratz先生
结果:
Gustav Magnus Oswald,
Clement Fleevle Fust-Kratz先生
到目前为止,我已经提出了这个问题:[^a-zA-Z ]+
但是它无效。
我尝试匹配3个字 - ^[a-zA-Z0-9_ ]+( [a-zA-Z0-9_ ])+( [a-Za-Z0-9_ ]) *$
我缺少什么?
答案 0 :(得分:0)
如何编写这样的代码呢?
String name = "Gustav M@g$nus Oswald"; // this name comes from your data source
String cleansedName = name.replace("$", "s").replace("@", "a");
那么,包含不可替换,不允许的字符的字符串会发生什么?
答案 1 :(得分:0)
您可以使用replaceAll()
替换不需要的字符:
String str = "Gustav Mag$nus O@swald , M@r. Cleme/nt Fleevle Fust-Kratz";
str = str.replaceAll("[$\\/@]", "");
输出:
Gustav Magnus Oswald , Mr. Clement Fleevle Fust-Kratz
答案 2 :(得分:0)
尝试类似
的内容String name="Gustav Mag$nus Oswald , Mr. Clement Fleevle Fust-Kratz";
String newString = name.replaceAll("[^a-zA-Zs+,-]{1,}"," ").replaceAll("\\s{1,}"," ");
System.out.println(newString);