小编典典

如何从Java中的字符串中删除所有类型的前缀称呼?

java

假设我有来自Input的带有名称的字符串(例如:)Mr . Aditya Jha。如何从输入开始删除称呼?

可能出现的称呼清单是:

Mr, Mrs, Dr, Miss, Ms, Rev, Mr. , Mr. , Dr. , Miss. , Ms. , Rev. , Mr . , Mr . , Dr . , Miss . , Ms . , Rev .

任何解决方案或正则表达式声明都可以考虑所有这些称呼?

我尝试了这个:

name.replaceAll("\\s{2,}", " ").replaceFirst("(?i)(Mr . )", "").replaceFirst("(?i)(Mr |Mr. )", "").trim()

它正在工作,但是就象名字一样amra khan,它正在删除mr


阅读 301

收藏
2020-11-30

共1个答案

小编典典

您可以使用

name = name.replaceAll("\\s{2,}", " ").replaceFirst("(?i)^\\s*(?:M(?:iss|rs?|s)|Dr|Rev)\\b[\\s.]*", "").trim();

参见正则表达式演示

图案细节

  • (?i) -忽略大小写的选项
  • ^ -字符串开始
  • \s* -0+空格
  • (?:M(?:iss|rs?|s)|Dr|Rev)- M其次有issrrss,或DrRev(可能更长时间后添加|这里)
  • \b -字边界
  • [\s.]* -0或多个空格或点。
2020-11-30