[散分]关于正则表达式的问题,帮我解决的给100,帮顶的平分剩下100
我有一个字符串"第一章 章鱼来袭"
用正则想把"一"给取出来。我正则写的是取的是“第”"章"之间的字符
但是因为有两个"章"字,而且章字后边有时有空格,有时没有,没办法用特殊字符来代替。
所以取出来的就变成了"一章 "
请问这个正则应该怎么写,才能只取第一个章前面的字符串呢?
谢谢
------解决方案--------------------我看见第一章后面有个空格。可以从这入手吧?
------解决方案-------------------- 有空格,也可以从其他字出发思路
------解决方案--------------------一定要用正则吗?
好吧,我是来顶贴的
------解决方案--------------------Pattern p = Pattern.compile(".*第(.?)章.*");
Matcher mm = p.matcher("第一章 章鱼来袭");
mm.find();
System.out.println(mm.group(1));
------解决方案--------------------Pattern p = Pattern.compile(".*第(.*?)章.*");
Matcher mm = p.matcher("第十五章 章鱼来袭");
mm.find();
System.out.println(mm.group(1));
改了一下能匹配多个字符了
------解决方案--------------------帮顶下~
------解决方案--------------------
Matcher m=Pattern.compile("第(.*?)章").matcher(你的字符串);
if(m.find())
System.out.println(m.group(1));
------解决方案--------------------好吧,我来顶的,上面貌似已经解决了
------解决方案--------------------7楼的写法简短一些,好!!!
------解决方案--------------------方法还是很多的,用正则的话可以这样
String s = "第一章 章鱼来袭";
String ss = s.replaceAll("第(.+?)章.*", "$1");
System.out.println(ss);