【发布时间】:2018-06-19 09:32:57
【问题描述】:
我有像"John Connele MCA MD" 和"John O'Connele" 这样的名字,我使用了这个正则表达式"s*[A-Z]+(?:\.|\b)"。
String fullName = "John O'Connele MCA MD";
fullName = fullName.replaceAll("s*[A-Z]+(?:\.|\b)","").trim;
System.out.println(fullName)
正则表达式的目的是只删除称呼和标题我得到的输出是"John Connele",而正确的输出应该是"John O'Connele"
【问题讨论】:
-
您的代码无法编译 - 正则表达式格式错误。此外,您似乎不是在寻找要删除的“称呼”,而是在寻找标题。您需要搜索适当的标准,例如可能是空格,后跟仅大写字母和空格的序列。
-
有时名称可以是“John O'Connele, MCA,MD 所以我认为我不能依赖空格
-
你需要找到一个合适的规则——我的只是一个例子。
-
你可以试试
{2,},而不是+
标签: java regex replaceall