/*正则表达式-切割
正则表达式:符合一定规则的而表达式.
作用:用于专门操作字符串。
特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。
所以学习正则表达式
好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差
具体操作功能:
1,匹配:String matches()方法.用规则整个字符串,只要有一处不符合规则,就匹配结束,返回false
2,切割:String split();
*/
class RegexDemo
{
public static void main(String[] args)
{
//demo();
//checkTel();
//splitDemo();
splitDemo("zhangsan.lisi.wangwu","\\.");//"\"会转义,按照.来进行切割,单独1个"."表示任意字符,要转义2次
/*
正则中一个单独的点表示任意字符,所有字符都作为分隔符当然不会有任何结果
\\.实际上被转义为两次,\\在java中被转换为一个'\'字符,然后'\.'被传给正则,\.表示对点字符进行转义,使.就表示字符'.',而不使用它在正则中的特殊意义
*/
splitDemo("C:\\abc\\a.txt","\\\\");//因为\会转义,2个表1个,4个表2个
splitDemo("erkktyqquizzo","(.)\\1+");//按照叠词完成切割,为了可以让规则的结果被重用
//可以将规则封装成一个组.用()完成.组的出现都有编号
//从1开始.想要使用已有的组可以通过\n(n就是组的编号)摸形式来获取
//(.)\1//捕获组1 字符串//(.)\\1
}
public static void splitDemo(String str,String reg)
{
//String str = "zhangsan lisi wangwu";
//String reg = " +";//按照多个空格来进行切割
//String str = "zhangsan.lisi.wangwu";
//String reg = "\\.";//按照.来进行切割, 单独1个.表示任意字符,要转义2次
String[] arr = str.split(reg);
System.out.println(arr.length);
for (String s: arr )
{
System.out.println(s);
}
}
/*
匹配
手机号段只有 13xxx 15xxx 18xxx
*/
public static void checkTel()
{
String tel = "13900001111";
String telReg = "1[358]\\d{9}";
System.out.println(tel.matches(telreg));
}
public static void demo()
{
String str = "a";
String reg = "[bcd]";
boolean b = str.matches(reg);
System.out.println(b);
}
public static void cheQQ()
{
String qq = "1882345";
String regex = "[1-9]\\d{4,14}";
boolean flag = qq.matches(regex);//String的匹配regex方法
if (flag)
System.out.println(qq+"..is ok");
else
System.out.println(qq+"..is 错误的");
}
/*
对QQ号码进行校验
要求:5-15 0不能开头,只能是数字
这种方式,使用了String类中的方法,进行组合完成了需求,但是代码过于复杂。
*/
public static void checQQ_1()
{
String qq = "";
int len = qq.length();
if (len>=5 && len<=15)
{
if (!qq.startsWith("0"))//Integer.parseInt("23c");NumberFormatException
{
try
{
long l = Long.parseLong(qq);
System.out.println("qq:"+l);
}
catch (NumberFormatException e)
{
System.out.println("出现非法字符");
}
/*char[] arr = qq.toCharArray();
boolean flag = true;
for (int x = 0; x<arr.length;x++ )
{
if (!(arr[x]>='0' && arr[x]<='9'))
{
flag = false;
break;
}
if (flag)
{
System.out.println("qq:"+qq);
}
else
{
System.out.println("出现非法字符");
}*/
}
}
else
{
System.out.println("不可以0开头");
}
}
else
{
System.out.println("长度错误");
}
}
}
正则表达式-切割
最新推荐文章于 2024-05-30 22:28:11 发布