我想首先用" 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()返回对象实例。
任何帮助都将受到高度赞赏。 感谢
答案 0 :(得分: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);
}
}