这个问题在这里已有答案:
我想首先用“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()返回对象实例。
任何帮助将受到高度赞赏。谢谢
如果您只有一个值或两个以上,这样的正则表达式将无法正常工作。正则表达式与"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);
}
}