在这个字符串中:
{"id":9,"name":"test3"}
我试图找到ID的值。为此,我使用这个正则表达式:\"id\"\:(\d+),
在regex101上,当我测试代码时,它可以工作。
解析它的java代码如下:
final String regex = "\\\"id\\\"\\:(\\d+),";
private final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
Matcher m = pattern.matcher(json);
String createdId = m.group(1);
并且json等于json我在上面。
我看到匹配器不匹配,因此在我得到第一组时会抛出错误。
哪里出错了?
发布于 2018-10-26 14:22:09
还没有在matcher对象上调用find方法,
您需要更正这样的代码,
Matcher m = pattern.matcher(json);
if (m.find()) {
String createdId = m.group(1);
System.out.println(createdId);
}
你也可以简单地用你的正则表达式,
final String regex = "\"id\":(\\d+),";
虽然你的原始正则表达式也有效,因为它逃脱双引号,这对正则表达式没有影响。
https://stackoverflow.com/questions/-100002988
复制相似问题