加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 正则表达式捕获组中的组

发布时间:2020-12-15 02:22:59 所属栏目:Java 来源:网络整理
导读:在 Java中,如何获取组内的所有组(正则表达式). 例如:使用(([A-Z] [a-z]))([0-9])测试一个字符串:“AbcDefGhi12345”. 然后得到结果: 比赛():是 groupCount():3 组(1):ABCDEFGHI 组(2):GHI 组(3):12345 但我想分别获得String“Abc”,“Def”,“Ghi”,
在 Java中,如何获取组内的所有组(正则表达式).
例如:使用(([A-Z] [a-z]))([0-9])测试一个字符串:“AbcDefGhi12345”.
然后得到结果:
比赛():是
groupCount():3
组(1):ABCDEFGHI
组(2):GHI
组(3):12345

但我想分别获得String“Abc”,“Def”,“Ghi”,“12345”.
我怎么能用正则表达式做到这一点?

解决方法

正则表达式无法处理重复组,它可以返回任何捕获的组(在您的情况下,它返回“Ghi”).

以下示例将打印:

Abc
Def
Ghi
12345

代码:

public static void main(String[] args) {

    String example = "AbcDefGhi12345";

    if (example.matches("(([A-Z][a-z]+)+)([0-9]+)")) {

        Scanner s = new Scanner(example);

        String m;
        while ((m = s.findWithinHorizon("[A-Z][a-z]+",0)) != null)
            System.out.println(m);

        System.out.println(s.findWithinHorizon("[0-9]+",0));
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读