您的位置:首页 > 其它

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

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

具体操作功能:
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("长度不符合规定!");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息