有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java正则表达式:解析包含最后、第一和中间首字母的字符串

我可以使用以下格式的任一字符串:

Doe, John F -
Doe, John -

我写了以下两个例子:

"^(.+),\\s(.+)\\s([A-Za-z])?\\s?-$"

"Doe, John F-" (no space after “Middle_Init”)
"Doe, John -"  (no middle initial)

但它不适用于任何人

"Doe, John F -" (space after the middle initial and the hyphen)

我不知道如何使空间成为可选的。任何想法都很感激


共 (2) 个答案

  1. # 1 楼答案

    如果需要为所有3个组件捕获单独的组,此regexp应该可以工作: "^(.+),\\s+(\\w+)\\s+(\\w+)?\\s*-$"(格式化为Java字符串)

    Regexp demo

  2. # 2 楼答案

    这应该适用于两种情况:

    ^(.+),\s(.+)\s?-$