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

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

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

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

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

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

谢谢
...全文
214 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
我看见第一章后面有个空格。可以从这入手吧?

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧