正则表达式拆分全名

时间:2015-08-04 03:11:07

标签: java regex string split

我正在寻找在我的Java应用程序中使用的正则表达式将全名分为First&姓氏部分。

全名将始终用“”(空格作为分隔符)分隔。 某些名称可以包含中间名,但它们可以与FirstName结合使用,我只想将姓氏分隔为单独的组。

For example :
"This is My Fullname"
 LastName = Fullname
 FirstName = This is My

所以逻辑是,Last WhiteSpace之后的任何东西都被认为是LastName,之前的所有东西都被认为是FirstName。

3 个答案:

答案 0 :(得分:5)

在我看来,正则表达式对于这种情况并不是最好的。

String fullName = "This is My Fullname";
int index = fullName.lastIndexOf(' ');
String lastName = fullName.substring(index+1);
String firstName = fullName.substring(0, index);

答案 1 :(得分:1)

您不必为此目的使用RegEx。只需按空格分割字符串,并使用最后一个数组项作为LastName。

实施例

String[] parts = string.split(" ");

part [parts.length - 1] - 将是LastName

答案 2 :(得分:0)

您可能需要“向前看”的方法,因为您不知道输入中的空格数。问题是引用具有未知数量项的组。 例如。 ([^])([^])([^])([^])和引用$ 3和$ 4将在您的4项字符串中起作用,但不能与更多项目一起使用。并且([^])*([^])将无法引用这些组。

但在这个简单的情况下,我会说最简单的是使用字符串拆分并取最后2项:

String inputString = "This is My Fullname";
String[] splitText = inputString.split(" ");
String firstName = splitText[splitText.length-2];
String lastName = splitText[splitText.length-1];