如何从多个下划线变量大小的字符串中获取所需的字符?

时间:2015-12-30 03:25:17

标签: java string

这是How to get the desired character from the variable sized strings?的延续 但包括要从中提取人名的其他方案

{{1}}

以上是从中提取姓名人名的样本单词。需要注意的一点是,人名将始终在" Number"之后开始。和#34;下划线"。如何使用Java实现上述功能?

5 个答案:

答案 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进一步打破这个问题,如上所述