Java 正则表达式 练习

来源:互联网 发布:mac安装pip ipython 编辑:程序博客网 时间:2024/05/17 03:59
package regex.test;import java.util.regex.Matcher;import java.util.regex.Pattern;import java.util.Arrays;import java.util.TreeSet;public class RegexTest {/** *  * @param args */public static void main(String[] args) {/* * 1 治疗口吃:我我我我我要要要要学学学学编编编程程 * 2 对ip地址排序 * 3 对邮箱地址校验 *  */test_3();}/* * 邮箱地址校验 */private static void test_3() {String mail="asd@sina.com.cn";String regex="(\\w)+@[a-zA-Z0-9]+(\\.[a-zA-Z]{1,3})+";boolean b=mail.matches(regex);System.out.println(mail+":"+b);}/* * 1 治口吃 */public static void test_1() {String str2="我我...我...我我...要..要要要学学..学学编..编..编程..程";//1 将字符串中的.去掉 用替换String str1="我我我我我要要要要学学学学编编编程程";String name=str2.replaceAll("\\.","");//去掉...String name2=name.replaceAll("(.)\\1+","$1");//去掉重复System.out.println(name2);}/* * ip 地址排序 * 192.168.10.34 127.0.0.1 3.3.3.3 105.70.11.55 *  */public static void test_2() {String str="192.168.10.34 127.0.0.1 3.3.3.3 105.70.11.55";//1 为了让ip可以按照字符串顺序比较 只要让ip的每一段的位数相同//所以 补0 按照每一位所需最多0进行补充  每一段都加两个00str=str.replaceAll("(\\d+)","00$1");//然后每一段 保留 数字3位str=str.replaceAll("0*(\\d{3})", "$1");System.out.println(str);int []num=new int[4];String []ips=str.split(" ");TreeSet<String> ts=new TreeSet<>();for(String ip:ips) {ts.add(ip);}for(String ip:ts) {System.out.println(ip.replaceAll("0*(\\d+)", "$1"));}/*for(int i=0;i<ip.length;i++) {Pattern p=Pattern.compile("\\d{1,3}");Matcher m=p.matcher(ip[i]);m.find();num[i]=Integer.parseInt(m.group());}*///Arrays.sort(num);}}