从Java中的字符串中获取特定值

时间:2012-05-17 14:52:34

标签: java regex string

我想从字符串中获取一些值。例如:

String string= "Name: armand," + "Age: 22," + "etc";

我如何使用正则表达式获取名称?

我对正则表达式非常不好,所以我无法弄清楚如何解决这个问题。

2 个答案:

答案 0 :(得分:3)

  

抱歉它的实际看起来像这个名字:armand,年龄:22岁等。但我很   正则表达式不好,这对我来说很难解决。

给定String s = "Name:armand,Age:22";

这是一个提示:

s.split(",")[0].split(":")将为您提供armand

s.split(",")[1].split(":")会给你22

不需要正规表达知识。

  

有些人在遇到问题时会想“我知道,我会用   正则表达式。“现在他们有两个问题。 - 杰米·扎温斯基

答案 1 :(得分:1)

取决于你真正想做的事情,例如,如果你只想得到给定键的值,假设键和值用冒号分隔,键/值用逗号分隔,你可以直接拆分这种方式首先用逗号分隔,然后用冒号:

String[] couple = string.split(",");

 for(int i =0; i < couple.length ; i++) {
    String[] items =couple[i].split(":");
    items[0]; //Key
    items[1]; //Value
}

如果你想用正则表达式做,你可以这样做:

    String string = "Name:armand,Age:22,";
    Pattern pattern = Pattern.compile("(\\w+?):(\\w+?),");
    Matcher matcher = pattern.matcher(string);
    while (matcher.find()) {
        String key = matcher.group(1);
        String value = matcher.group(2);

        System.out.println("Key : " + key + " value : " + value);
    }