Java 正则表达式 练习

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进行补充  每一段都加两个00
		str=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);
		
			
		}
		
	
		
	}
	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值