正则练习

/*
练习1:
	需求:降下列字符串转成:我要学编程
		"我我.我我...我要..要要...要要...学学学....学学...编编编...编程..程.程...程程...程"

练习2:
	需求:将 ip 地址进行地址段顺序的排序
		"172.68.1.254   102.49.23.013     10.10.10.10   2.2.2.2  8.109.90.30"

练习3:
	需求:对邮件地址进行校验
		chuzhen1210@sina.com

到底用四种功能中的哪一个呢?或者哪几个呢?
	思路:
		1,如果只想知道该字符串是否对与错,使用匹配
		2,想要将已有的字符串变成一个字符串,替换
		3,想要按照自定义的方式将字符串变成多个字符串,使用切割,获取规则以外的子串
		4,想要拿到符合需求的字符串子串,使用获取,获取符合规则的子串

*/
import java.util.*;
class RegexText01 {
	public static void main(String[] args) {
		//test_01();
		//test_02();
		checkMail();
	}

	public static void checkMail() {
		String mail = "chuzhen1210@sina.com";
		String regex = "[a-zA-Z_0-9]{6,12}@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
		boolean legal = mail.matches(regex);
		System.out.println(legal);
	}

	public static void test_01() {
		String str = "我我.我我...我要..要要...要要...学学学....学学...编编编...编程..程.程...程程...程";
		/*
		将已有的字符串变成另一个字符串,使用替换功能
		1,可以先将 . 去掉
		2,再将多个重复的内容变成单个内容
		*/
		String regex1 = "\\.+";
		str = str.replaceAll(regex1, "");		//将 . 替换成空字符串
		System.out.println(str);

		String regex2 = "(.)\\1+";
		str = str.replaceAll(regex2, "$1");
		System.out.println(str);
	}

	public static void test_02() {
		String ip = "172.68.1.254   102.49.23.013     10.10.10.10   2.2.2.2  8.109.90.30";

		String regex1 = "(\\d+)";
		ip = ip.replaceAll(regex1, "00$1");		//前面补 0,使每位都不少于三位数
		System.out.println(ip);

		String regex2 = "0*(\\d{3})";
		ip = ip.replaceAll(regex2, "$1");		//使每位都有且只有三位数
		System.out.println(ip);

		String[] arr = ip.split(" +");			//使用空格切割

		TreeSet<String> ts = new TreeSet<String>();	//TreeSet 集合按自然顺序排序
		for(String s : arr)
			ts.add(s);
		for(String s : ts)
			System.out.println(s.replaceAll("0*(\\d+)", "$1"));
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值