这是How to get the desired character from the variable sized strings?的延续 但包括要从中提取人名的其他方案
{{1}}
以上是从中提取姓名人名的样本单词。需要注意的一点是,人名将始终在" Number"之后开始。和#34;下划线"。如何使用Java实现上述功能?
答案 0 :(得分:2)
使用以下正则表达式:
show
...并提取第一组的值。
答案 1 :(得分:2)
String[] strings = {
"pot-1_Sam",
"pot_444_Jack",
"pot_US-1_Sam",
"pot_RUS_444_Jack",
"pot_UK_3_Nick_Samuel",
"pot_8_James_Baldwin",
"pot_8_Jack_Furleng_Derik"
};
Pattern pattern = Pattern.compile("\\d_(\\w+)$");
for (String s : strings ){
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
}
答案 2 :(得分:1)
这是正则表达式:\d_(.*$)
\ d代表一位数
_代表下划线
()代表组
。* $代表“所有直到行尾”
答案 3 :(得分:1)
String str= "pot_8_Jack_Furleng_Derik";
// name starts after number and _
Pattern p = Pattern.compile("\\d+_");
Matcher m = p.matcher(str);
int index = -1;
// find the index of name
if(m.find())
index = m.start()+2;
str= str.substring(index);
System.out.print(str);
答案 4 :(得分:0)
您可以尝试使用Reflection来获取变量的实际名称 documentation 你可以用Regex进一步打破这个问题,如上所述