package dealwithstring;

import java.util.regex.*;

public class Matcherfind {
public static void main(String args[]){
String regex = "a[a-z]c";
Pattern p = Pattern.compile(regex);
String input = &

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 何加男

    18人对此回答表示赞同

    m.groupCount()的意思是你的regex中有几对括号啊

    if(m.find())只能找到input中第一个匹配的,用while(m.find())就行了
    展开
    18
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Bellrrrrr

    18人对此回答表示赞同

    if(m.find())是这句的问题,如果找到,也就是找到abc的时候,if成立了,所以就不会往后走了,而是把它显示出来~~
    如果你想显示所有的,就改为
    while(m.find()){
    ......
    }
    这样就可以全部显示出来了~~
    展开
    18
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Penelope

    17人对此回答表示赞同

    这个group的意思并不是匹配结果数,而是对正则表达式的分组,比如把"a[a-z]c"写成"(a)[a-e](c)",这个group(0)就等效于"a[a-z]c",group(1)就等效于"a",group(2)就等效于"c",可以这样写代码:
    while(m.find()){
    System.out.println(m.groupCount());
    展开
    17
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 遥不可及

    11人对此回答表示赞同

    groupCount() 返回此匹配器模式中的捕获组数。

    正则表达式
    写成: (a[a-z]c) //这样算一组
    写成: (a[a-z])(c) //这样算两组

    如果写成这样:(a[a-z])(c)
    则:
    m.group() //返回: abc
    m.group(0) //同m.group()
    m.group(1) ////返回: ab
    m.group(2) ////返回: c
    展开
    11
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部