用于分割具有多个值的字段的正则表达式[重复]

问题描述 投票:-4回答:1

这个问题在这里已有答案:

我想首先用“duration =”和字符串的剩余部分拆分字符串,下面的代码可以做到。现在我想检查字符串的第二部分是否包含任何逗号(,)并相应地拆分该值

        String data = "duration=WEEKLY,MONTHLY";
        pattern = Pattern.compile("duration=(\\S*),(\\S*)", Pattern.CASE_INSENSITIVE);
        matcher = pattern.matcher(data);
        if (matcher.find()) {

            System.out.println(matcher.group(2)); //this prints MONTHLY(as it is group(2))
  }

我想打印“每周,每月”。我怎样才能获得整个字符串?

matcher.toMatchResult()或matcher.toString()返回对象实例。

任何帮助将受到高度赞赏。谢谢

java regex
1个回答
1
投票

如果您只有一个值或两个以上,这样的正则表达式将无法正常工作。正则表达式与"duration=MONTHLY"不匹配。

但你可以用它来获得“价值”部分,然后简单地用String.split来获得结果

    String data = "duration=WEEKLY,MONTHLY";
    pattern = Pattern.compile("duration=(.*)", Pattern.CASE_INSENSITIVE);
    matcher = pattern.matcher(data);
    if (matcher.find()) {
        String value = matcher.group(1); //get the values
        String[] values = value.split(","); //split on the comma
        for(String s : values){ //iterate the values
            System.out.println(s);
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.