首页 > 代码库 > 【JAVA正则表达式综合练习】
【JAVA正则表达式综合练习】
一、治疗口吃。
将字符串“我我我我我我我..........我.......要要要要要..................要要要要...学习习习习.......习习习习习习习习编程程程程程程.......程程程程程程程程程”变成“我要学习编程”
分析:先将....去掉:使用"\\.+"模式,再将叠词替换成一个:使用"(.)\\1+"模式。
代码:
1 package p02.Exercise; 2 3 public class Demo01 { 4 public static void main(String args[]) 5 { 6 String str="我我我我我我我..........我.......要要要要要..................要要要要...学习习习习.......习习习习习习习习编程程程程程程.......程程程程程程程程程"; 7 //1.先去掉. 8 String regex="\\.+"; 9 str=str.replaceAll(regex, "");10 // System.out.println(str);11 //2.合并叠词。12 regex="(.)\\1+";13 str=str.replaceAll(regex, "$1");14 System.out.println(str);15 }16 }
运行结果:
我要学习编程
二、ip地址排序。
将若干个ip地址排序输出。
"192.168.10.34 127.0.0.1 105.70.11.75 3.3.3.3"
思路:排序使用TreeSet自动完成,但是排序方式是根据字符串的字典序排序,要想按照大小排序,需要添加0,输出的时候需要去掉0.
代码:
1 package p02.Exercise; 2 3 import java.util.TreeSet; 4 5 public class Demo02 { 6 public static void main(String args[]) 7 { 8 String str="192.168.10.34 127.0.0.1 105.70.11.75 3.3.3.3"; 9 //1.先分割ip地址。10 String regex=" +";11 String arr[]=str.split(regex);12 for(String s:arr)13 System.out.println(s);14 System.out.println();15 System.out.println();16 17 //2.给每个字节段不足3位的补零,先补上两个018 regex="(\\d+)";19 for(int i=0;i<arr.length;i++)20 {21 arr[i]=arr[i].replaceAll(regex, "00$1");22 }23 //3.去掉多余的0,只保留三位。24 regex="0*(\\d{3})";25 for(int i=0;i<arr.length;i++)26 {27 arr[i]=arr[i].replaceAll(regex, "$1");28 System.out.println(arr[i]);29 }30 System.out.println();31 System.out.println();32 //4.放入TreeSet集合进行排序。33 TreeSet <String>ts=new TreeSet<String>();34 for(String s:arr)35 {36 ts.add(s);37 }38 regex="0*(\\d+)";39 for(String s:ts)40 {41 System.out.println(s.replaceAll(regex, "$1"));42 }43 }44 }
运行结果:
1 192.168.10.34 2 127.0.0.1 3 105.70.11.75 4 3.3.3.3 5 6 7 192.168.010.034 8 127.000.000.001 9 105.070.011.07510 003.003.003.00311 12 13 3.3.3.314 105.70.11.7515 127.0.0.116 192.168.10.34
在去掉多余的0的时候,使用的模式是:"0*(\\d+)",这样即使全部都是0,在最后使用$1进行替换的时候也能留住最后一个0。
三、校验邮箱。
使用的模式:"\\w+@[a-zA-Z0-9]+(\\.[a-z]{2,3}){1,2}",意思用户标识符为字母数字下划线,长度不限;邮件服务器域名第一个单词应为字母数字的组成,其余应为小写字母组成。
代码:
1 package p02.Exercise; 2 3 public class Demo03 { 4 public static void main(String args[]) 5 { 6 String str="kdyzm@sina.com"; 7 String regex="\\w+@[a-zA-Z0-9]+(\\.[a-z]{2,3}){1,2}"; 8 System.out.println(str.matches(regex)); 9 }10 }
【JAVA正则表达式综合练习】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。