怎么用正则表达式截取字符串,急!!!

charlesxu 2012-09-21 04:40:37
字符串如下所示:


U#:zhang_san#:ASSIGN#:2#:0#:0#:0#:#:#:#:#;U#:wang_wu#:ASSIGN#:2#:0#:0#:0#:#:#:#:#;


我想把zhang_san和wang_wu截取出来
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cscript 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

高人。能解释一下这段代码吗?
[/Quote]

这段代码就是普通的正则表达式的应用,自己baidu看看吧

我可以给你解释下 U#:([^#]+)# 这个正则

已“U#:”开头中间字符不是#号的 字符串 都匹配出来
omghaa 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

Java code

String text = "U#:zhang_san#:ASSIGN#:2#:0#:0#:0#:#:#:#:#;U#:wang_wu#:ASSIGN#:2#:0#:0#:0#:#:#:#:#;";
Matcher m = Pattern.compile("U#:([^#]+)#").matcher(text);
Strin……
[/Quote]

高人。能解释一下这段代码吗?
cscript 2012-09-21
  • 打赏
  • 举报
回复

String text = "U#:zhang_san#:ASSIGN#:2#:0#:0#:0#:#:#:#:#;U#:wang_wu#:ASSIGN#:2#:0#:0#:0#:#:#:#:#;";
Matcher m = Pattern.compile("U#:([^#]+)#").matcher(text);
StringBuilder sb = new StringBuilder();
while(m.find()){
sb.append(m.group(1)).append(":");
}
if(sb.length()>1)
sb.deleteCharAt(sb.length()-1);
System.out.println(sb.toString());
charlesxu 2012-09-21
  • 打赏
  • 举报
回复
最后的需要的结果是"zhang_san:wang_wu"

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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