当前位置: 首页 > 面试题库 >

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

仇航
2023-03-14
问题内容

假设我有来自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


问题答案:

您可以使用

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或多个空格或点。


 类似资料:
  • 在我的脚本中,我有一个字符串及其前缀/后缀。我需要从原始字符串中删除前缀/后缀。 例如,假设我有以下值: 如何得到以下结果?

  • 问题内容: 我在textarea中有一个文本,我使用.value属性将其读出。 现在,我想使用正则表达式.replace从我的文本中删除所有换行符(按时产生的字符),但是如何在正则表达式中指示换行符? 如果那不可能,还有另一种方法吗? 问题答案: 这可能是一个常见问题解答。无论如何,换行符(更好的是:换行符)可以是回车符(在较旧的Mac上为CR,),换行符(在Unices 包括Linux上为LF,

  • 我在textarea中有一个文本,我使用.value属性读出它。 现在我想从我的文本中删除所有的换行符(按Enter时产生的字符),现在使用.替换为正则表达式,但如何在正则表达式中指示换行符? 如果不可能的话,是否还有其他方法?

  • 问题内容: 如何删除python字符串中的所有空格?例如,我希望将一个字符串转换为,但是我似乎无法通过以下方式完成此操作: 问题答案: 利用没有sep参数的str.split的行为: 如果只想删除空格而不是所有空格: 过早优化 尽管效率不是主要目标(编写清晰的代码是),但以下是一些初始时间: 请注意,正则表达式已缓存,因此它没有您想象的那么慢。编译事前帮助一些,但在实践中,如果你把这个只会重要 很

  • 问题内容: 我可以用这个: 有没有办法从Java中的字符串中删除所有出现的字符? 我尝试了这个,不是我想要的: 问题答案: 尝试使用需要参数(例如)而不是的重载:

  • 问题内容: 我正在尝试使用JSON从服务器获取对象数组。 服务器向我发送以下字符串。 现在,如果您仔细查看字符串,您会发现它包含一个 而不是every 。该字符串目前无法格式化为JSONArray。所以,我需要更换的每个实例 有 ,这将有一个非常简单的任务,也 没有一个 转义序列 。 我尝试使用以下代码。 但这给了我以下例外。 我的整个代码,以防万一: 问题答案: 试试这个: 因为反斜杠是正则表达