模式/匹配器Java,非零组计数但错误检索?

 喵喵方小幺 发布于 2023-02-05 12:01

matcher.groupCount()给了我4但是当我使用时matcher.group(0),...... matcher.group(0),它给了我一个错误.

以下是我的代码:

Pattern pattern = Pattern.compile("([0-9]+).([0-9]+).([0-9]+).([0-9]+)");
Matcher matcher1, matcher2;

GeoIP[0][0] = (GeoIP[0][0]).trim();
GeoIP[0][1] = (GeoIP[0][1]).trim();

System.out.println(GeoIP[0][0]);
System.out.println(GeoIP[0][1]);

matcher1 = pattern.matcher(GeoIP[0][0]);
matcher2 = pattern.matcher(GeoIP[0][1]);

System.out.println("matcher1.groupCount() = " + matcher1.groupCount());
System.out.println("matcher2.groupCount() = " + matcher2.groupCount());

System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString());

安慰:

Exception in thread "main" 1.0.0.0
1.0.0.255
matcher1.groupCount() = 4
matcher2.groupCount() = 4

java.lang.IllegalStateException: No match found
    at java.util.regex.Matcher.group(Unknown Source)
    at filename.main(filename.java:linenumber)

行号指向

System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString());

Affe.. 9

groupCount只是告诉你在正则表达式中定义了多少个组.如果您想要实际访问结果,则必须先执行匹配!

  if (matcher1.find()) {
    System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString());
  } else {
    System.out.println("No match.");
  }

也是.正则表达式中的特殊角色,你可能想要\\.

1 个回答
  • groupCount只是告诉你在正则表达式中定义了多少个组.如果您想要实际访问结果,则必须先执行匹配!

      if (matcher1.find()) {
        System.out.println("matcher1.group(0) = " (matcher1.group(0)).toString());
      } else {
        System.out.println("No match.");
      }
    

    也是.正则表达式中的特殊角色,你可能想要\\.

    2023-02-05 12:03 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有