Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式从全名中删除称呼语_Java_Regex_Replaceall - Fatal编程技术网

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

Java 使用正则表达式从全名中删除称呼语,java,regex,replaceall,Java,Regex,Replaceall,我有像“John Connele MCA MD”和“John O'Connele”这样的名字,我使用了这个正则表达式“s*[A-Z]+(?:\.\124;\ b)” 正则表达式的目的是只删除称呼和标题,我得到的输出是“John Connele”,而正确的输出应该是“John O'Connele”,您可以试试这个 \你可以试试这个 \s[A-Z]{2,}+您可以使用 \W*\b[A-Z]+\b(?!'\b)\.? 看 详细信息 \W*-任何0+非单词字符 \b-单词边界(我们需要匹配整个

我有像
“John Connele MCA MD”
“John O'Connele”
这样的名字,我使用了这个正则表达式
“s*[A-Z]+(?:\.\124;\ b)”

正则表达式的目的是只删除称呼和标题,我得到的输出是“John Connele”,而正确的输出应该是“John O'Connele”

,您可以试试这个

\你可以试试这个

\s[A-Z]{2,}+

您可以使用

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

详细信息

  • \W*
    -任何0+非单词字符
  • \b
    -单词边界(我们需要匹配整个单词)
  • [A-Z]+
    -1+大写ASCII字母
  • \b
    -单词末尾(单词边界)
  • (?!”\b)
    -不
    跟一个单词char可以直接放在当前位置的右侧
  • \.?
    -1或0
    字符
(注意,所有反斜杠都是双内字符串文字,表示文字反斜杠、正则表达式转义):

你可以用

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

详细信息

  • \W*
    -任何0+非单词字符
  • \b
    -单词边界(我们需要匹配整个单词)
  • [A-Z]+
    -1+大写ASCII字母
  • \b
    -单词末尾(单词边界)
  • (?!”\b)
    -不
    跟一个单词char可以直接放在当前位置的右侧
  • \.?
    -1或0
    字符
(注意,所有反斜杠都是双内字符串文字,表示文字反斜杠、正则表达式转义):


您的代码未编译-正则表达式格式不正确。此外,您似乎并不希望删除“问候语”,而是希望删除标题。您需要搜索一个适当的标准,例如,可能是空格后跟仅大写字母和空格的序列。有时名称可以是“John O'Connele,MCA,MD,因此我认为我不能依赖空格”。您需要找到一个合适的规则-我的规则只是一个示例。您可以尝试
{2,}
而不是
+
您的代码无法编译-正则表达式格式不正确。此外,您似乎不是在寻找要删除的“问候语”,而是标题。您需要搜索适当的标准,例如,可能是空格,后面是仅大写字母和空格的序列。有时名称可能是“John O'Connele,MCA,医学博士,所以我不认为我可以依赖空格。你需要找到一个合适的规则-我的只是一个例子。你可以尝试
{2,}
而不是
+
String fullName = "John O'Connele MCA,MD.";
fullName = fullName.replaceAll("\\W*\\b[A-Z]+\\b(?!'\\b)\\.?","").trim();
System.out.println(fullName); // => John O'Connele