我有一个字符串"第一章 章鱼来袭"用正则想把"一"给取出来。我正则写的是取的是“第”"章"之间的字符但是因为有两个"章"字,而且章字后边有时有空格,有时没有,没办法用特殊字符来代替。所以取出来的就变成了"一章 "请问这个正则应该怎么写,才能只取第一个章前面的字符串呢?谢谢

解决方案 »

  1.   

    Pattern p = Pattern.compile(".*第(.?)章.*");

    Matcher mm = p.matcher("第一章 章鱼来袭");

    mm.find();

    System.out.println(mm.group(1));
      

  2.   

    Pattern p = Pattern.compile(".*第(.*?)章.*");

    Matcher mm = p.matcher("第十五章 章鱼来袭");

    mm.find();

    System.out.println(mm.group(1));改了一下能匹配多个字符了
      

  3.   


    Matcher m=Pattern.compile("第(.*?)章").matcher(你的字符串);
    if(m.find())
       System.out.println(m.group(1));
      

  4.   

    方法还是很多的,用正则的话可以这样String s = "第一章 章鱼来袭";
    String ss = s.replaceAll("第(.+?)章.*", "$1");
    System.out.println(ss);