我正在寻找在我的Java应用程序中使用的正则表达式将全名分为First&姓氏部分。
全名将始终用“”(空格作为分隔符)分隔。 某些名称可以包含中间名,但它们可以与FirstName结合使用,我只想将姓氏分隔为单独的组。
For example :
"This is My Fullname"
LastName = Fullname
FirstName = This is My
所以逻辑是,Last WhiteSpace之后的任何东西都被认为是LastName,之前的所有东西都被认为是FirstName。
答案 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];