gpt4 book ai didi

java - 使用正则表达式从全名中删除称呼语

转载 作者:行者123 更新时间:2023-12-02 11:06:25 24 4
gpt4 key购买 nike

我的名字像“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”

最佳答案

您可以使用

   \W*\b[A-Z]+\b(?!'\b)\.?

请参阅regex demo

详细信息

  • \W* - 任意 0+ 个非单词字符
  • \b - 单词边界(我们需要匹配整个单词)
  • [A-Z]+ - 1+ 个大写 ASCII 字母
  • \b - 词尾(词边界)
  • (?!'\b) - 后跟单词 char 的 ' 不允许紧邻当前位置的右侧
  • \.? - 1 或 0 . 个字符。

Java demo (请注意,所有反斜杠在字符串文字内都是双斜杠,以表示文字反斜杠、正则表达式转义):

String fullName = "John O'Connele MCA,MD.";
fullName = fullName.replaceAll("\\W*\\b[A-Z]+\\b(?!'\\b)\\.?","").trim();
System.out.println(fullName); // => John O'Connele

关于java - 使用正则表达式从全名中删除称呼语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50925019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com