仅匹配字符串REGEX中的字母字符

时间:2018-03-28 13:44:27

标签: java regex

我正在尝试清理文件中的某些数据。 有一个名字"包含带名称的字符串的列,其中一些包含符号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_ ]) *$

我缺少什么?

3 个答案:

答案 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);