码迷,mamicode.com
首页 > 编程语言 > 详细

Java 正则表达式(三)

时间:2015-06-12 22:33:35      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:表达式   java   字符串   正则表达式   切割   

上面讲了一些Java正则表达式的一些容易混淆的地方,接下来还有几个实例跟大家分享一下


字符串切割

demo1

String str = "zhangsan,lisi,wangwu";
String reg = ",";//注意这里可能会容易出错,当然这个demo可以直接写‘,‘
String[] arr = str.split(reg);


demo2

String str = "zhangsan lisi  wangwu";
String reg = " +";//这里表示有至少一个空格
String[] arr = str.split(reg);

demo3

String str = "zhangsan.lisi.wangwu";
String reg = "\\.";//注意,这里的.必须要转义,反斜杠在字符串里面同样需要转义,所以出现了双//斜杠
String[] arr = str.split(reg);


demo4

String str = "c:\\test\\test";
String reg = "\\\\";//同理上面,每个反斜杠都需要转义所以出现了四个反斜杠
String[] arr = str.split(reg);


demo5

String str = "zhangsannnlisiiiiwangwu";
String reg = "(.)\\1";//表示叠词,如果出现多次,则(.)\\1+。其中1相当于给组编号,表示从1开//始。使用方式就是用\n的方式来获取
String[] arr = str.split(reg);



正则表达式替换

demo1

String str = "zhan333gsannnlisiiiiw3333angwu";
String reg = "\\d+"; //正常替换即可
String[] arr = str.replaceAll(reg,"#");


demo2 替换成第一组的内容

String str = "zhan333gsannnlisiiiiw3333angwu";
String reg = "(.)\\1"; 
String[] arr = str.replaceAll(reg,"$1");//结果是zhan3gsanlisiw3angwu,$表示拿的是第一组规则


正则表达式查找

demo1

String str = "zhan333gsannnlisiiiiw3333angwu";
String reg = "[a-z]{3}";  
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
while(m.find()){
   System.out.print(m.group());
}



demo2

String str = "zhan333gsannnlisiiiiw3333angwu";
String reg = "\\b[a-z]{3}\\b";   //注意,这里添加了单词边界了
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
while(m.find()){
   System.out.print(m.group());
}


本文出自 “放肆Java” 博客,请务必保留此出处http://fun4java.blog.51cto.com/6609513/1661318

Java 正则表达式(三)

标签:表达式   java   字符串   正则表达式   切割   

原文地址:http://fun4java.blog.51cto.com/6609513/1661318

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!