[散分]关于正则表达式的问题,帮我解决的给100,帮顶的平分剩下100

约翰羊 2013-01-25 03:52:44
我有一个字符串"第一章 章鱼来袭"

用正则想把"一"给取出来。我正则写的是取的是“第”"章"之间的字符

但是因为有两个"章"字,而且章字后边有时有空格,有时没有,没办法用特殊字符来代替。

所以取出来的就变成了"一章 "

请问这个正则应该怎么写,才能只取第一个章前面的字符串呢?

谢谢
...全文
179 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
brightyq 2013-01-25
方法还是很多的,用正则的话可以这样
String s = "第一章 章鱼来袭";
String ss = s.replaceAll("第(.+?)章.*", "$1");
System.out.println(ss);
  • 打赏
  • 举报
回复
rome_wu 2013-01-25
7楼的写法简短一些,好!!!
  • 打赏
  • 举报
回复
aotian16 2013-01-25
好吧,我来顶的,上面貌似已经解决了
  • 打赏
  • 举报
回复
suciver 2013-01-25

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

  • 打赏
  • 举报
回复
地雷 2013-01-25
帮顶下~
  • 打赏
  • 举报
回复
小绵羊 2013-01-25
Pattern p = Pattern.compile(".*第(.*?)章.*");
		
		Matcher mm = p.matcher("第十五章 章鱼来袭");
		
		mm.find();
		
		System.out.println(mm.group(1));
改了一下能匹配多个字符了
  • 打赏
  • 举报
回复
小绵羊 2013-01-25
Pattern p = Pattern.compile(".*第(.?)章.*");
		
		Matcher mm = p.matcher("第一章 章鱼来袭");
		
		mm.find();
		
		System.out.println(mm.group(1));
  • 打赏
  • 举报
回复
nai598455803 2013-01-25
一定要用正则吗? 好吧,我是来顶贴的
  • 打赏
  • 举报
回复
zhang527 2013-01-25
有空格,也可以从其他字出发思路
  • 打赏
  • 举报
回复
abc41106 2013-01-25
我看见第一章后面有个空格。可以从这入手吧?
  • 打赏
  • 举报
回复
相关推荐
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2013-01-25 03:52
社区公告
暂无公告