正则表达式的威力1_匹配matches()与切割split()

/*
正则表达式:符合一定规则的表达式
			作用:用于专门操作字符串
			特点:用一些特定的符号来表示一些代码操作,简化书写,
			所以学习正则表达式就是在学习一些特殊符号的使用
			好处:简化对字符串的复杂操作
			弊端:符号定义越多,正则越长,阅读性越差


具体操作功能:
1,匹配:matches()方法
2,切割: split()方法
*/


class  RegexDemo
{
	public static void main(String[] args) 
	{
		splitDemo("zhangsan   lisi        wangwu"," +");//空格出现一次或者多次,按照多个空格切割
		splitDemo("zhangsan.lisi.wangwu","\\.");//不能直接用“.”切割,得转义一下,用"\\."
		splitDemo("c:\\abc\\a.txt","\\\\");
		splitDemo("deckkfsrroiaapwe","(.)\\1");//按照叠词切割,结果:dec fs oi pwe


		//第一次的结果在第二次重用,规则重用,将规则封装成组
		//组的出现都有编号,从1开始,想要使用已有的组可通过  \n(组的编号)
		//  (.)\1,第一位的内容在第二次再次出现
		//    ((())())有四组


		//checkTel();
		//checkQQ_1();
		//demo();
	}


	//切割字符串
	public static void splitDemo(String str,String reg)
	{
		String[] arr=str.split(reg);
		for (String s:arr )
		{
			System.out.println(s);
		}
	}


	//匹配功能
	public static void demo()
	{
		String str="b867675";
		String reg="[bcd]";//字符串只能有一个字符,且只能是b,c,d中的一个
		String reg1="[bcd][a-z]";//第一位只能是b,c,d中的一个,第二位是小写字母
		String reg2="[a-zA-Z][0-9]";//第一位字母,第二位数字
		String reg3="[a-zA-Z]\\d";// 第二位是数字,\d代表数字   \w数字字母下划线
		String reg4="[a-zA-Z]\\d?";//第二位可能没有,可能有一个数字
		String reg5="[a-zA-Z]\\d*";//第二位有0个或多个数字
		boolean b=str.matches(reg5);
		System.out.println(b);
	}


//匹配手机号
	public static void checkTel()
	{
		String tel="15023457612";
		String telReg="1[358]\\d{9}";
		System.out.println(tel.matches(telReg));
	}


/*
对QQ号码进行校验,要求:
5~15位,0不能开头,只能是数字
*/
	//使用正则表达式校验QQ
	public static void checkQQ_1()
	{
		String qq="1264489";
		//String regex="[1-9][0-9]{4,14}";//第一位只能是1-9;第二位只能是0-9,一共出现4-14次
		String regex1="[1-9]\\d{4,14}";


		boolean flag=qq.matches(regex1);
		if (flag)
		{
			System.out.println(qq+"is OK");
		}
		else
			System.out.println("不合法!");
	}


	//最笨的方法,代码过于复杂
	public static void checkQQ()
	{
		String qq="23kfwefewfwef";
		int len=qq.length();


		if (len>=5&&len<=15)
		{
			if (!qq.startsWith("0"))
			{
				try
				{
					long l=Long.parseLong(qq);
				}
				catch (NumberFormatException e)
				{
					System.out.println("出现非法字符!");
				}
				
				/*
				char [] arr=qq.toCharArray();
				boolean flag=true;
				for (int i=0;i<arr.length ;i++ )
				{
					if (!(arr[i]>'0'&& arr[i]<'9'))
					{
						flag=false;
						break;
					}
				}
				if (flag)
				{
					System.out.println("qq:"+qq);
				}
				else
				{
					System.out.println("出现非法字符!");
				}
				*/
			}
			else
				System.out.println("不可以用0开头!");
		}
		else
		{
			System.out.println("长度不符合规定!");
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值