假设我有来自Input的带有名称的字符串(例如:)Mr . Aditya Jha。如何从输入开始删除称呼?
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。
amra khan
mr
您可以使用
name = name.replaceAll("\\s{2,}", " ").replaceFirst("(?i)^\\s*(?:M(?:iss|rs?|s)|Dr|Rev)\\b[\\s.]*", "").trim();
参见正则表达式演示
图案细节
(?i)
^
\s*
(?:M(?:iss|rs?|s)|Dr|Rev)
M
iss
r
rs
s
Dr
Rev
|
\b
[\s.]*