首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解决Java Regex匹配没有发生?

如何解决Java Regex匹配没有发生?
EN

Stack Overflow用户
提问于 2018-10-26 04:37:54
回答 1查看 0关注 0票数 0

在这个字符串中:

代码语言:javascript
复制
{"id":9,"name":"test3"}

我试图找到ID的值。为此,我使用这个正则表达式:\"id\"\:(\d+),

regex101上,当我测试代码时,它可以工作。

解析它的java代码如下:

代码语言:javascript
复制
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我在上面。

我看到匹配器不匹配,因此在我得到第一组时会抛出错误。

哪里出错了?

EN

回答 1

Stack Overflow用户

发布于 2018-10-26 14:22:09

还没有在matcher对象上调用find方法,

您需要更正这样的代码,

代码语言:javascript
复制
     Matcher m = pattern.matcher(json);
        if (m.find()) {
            String createdId = m.group(1);
            System.out.println(createdId);
        }

你也可以简单地用你的正则表达式,

代码语言:javascript
复制
final String regex = "\"id\":(\\d+),";

虽然你的原始正则表达式也有效,因为它逃脱双引号,这对正则表达式没有影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档