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)
我不知道如何使空间成为可选的。任何想法都很感激
# 1 楼答案
如果需要为所有3个组件捕获单独的组,此regexp应该可以工作:
"^(.+),\\s+(\\w+)\\s+(\\w+)?\\s*-$"
(格式化为Java字符串)Regexp demo
# 2 楼答案
这应该适用于两种情况:
^(.+),\s(.+)\s?-$