/*正则表达式:更符合一定规则的表达式
作用:用于专门操作字符串
特点;用一些特定的符号来表示一些代码操作。这样简化书写。
所以学习正则表达式,就是在学习一些特殊符号的使用。
好处:可以简化对字符串的复杂操作。
弊端
具体操作
1.匹配:String matches方法
2.切割:String split()
3.替换:String replaceAll();
*/
import java.util.*;
class RegexDemo
{
public static void main(String[] args)
{
//checkQQ();
//demo();
//checkTel();
//splitdemo("zhangsan.lisi.wangwu","\\.");
//splitdemo("c:\\abc\\a.text","\\\\");
//splitdemo("arkktyqquizzzzo","(.)\\1+");//按照叠词进行切割,为了可以让规则的结果被重用
//String str="wer1389980000ty123456uiod23434567f5";//将字符串中的数字替换成#
//replaceAllDemo (str,"\\d{5,}","#"); //可以让规则封装成一个组用()完成。组的出现都有编号
String str1="20-10-12-14552555";//叠词替换成&
//replaceAllDemo (str1,"(.)\\1+","&");
replaceAllDemo (str1,"-"," ");
//replaceAllDemo (str1,"(.)\\1+","$1");
} //从1开始,想要使用已有的组可以通过\n(n是组的编号)的形式获取。
public static void splitdemo(String str,String reg)
{
String[] arr=str.split(reg);
System.out.println(arr.length);
for(String s:arr)
{
System.out.println(s);
}
}
public static void replaceAllDemo(String str,String reg,String newStr)
{
str=str.replaceAll(reg,newStr);
System.out.println(str);
}
/*
匹配手机号段只有 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="c844444";
String reg="[a-zA-Z]\\d*";
boolean b=str.matches(reg);
System.out.println(b);
}
/*对qq号码进行校验
要求:5-15 0不能开头,只能是数字
*/
public static void checkQQ()
{
String qq="123454";
String regex="[1-9]\\d{4,14}";
boolean flag=qq.matches(regex);
if(flag)
System.out.println(qq+"...is ok");
else
System.out.println(qq+"...不合法");
}
}
作用:用于专门操作字符串
特点;用一些特定的符号来表示一些代码操作。这样简化书写。
所以学习正则表达式,就是在学习一些特殊符号的使用。
好处:可以简化对字符串的复杂操作。
弊端
具体操作
1.匹配:String matches方法
2.切割:String split()
3.替换:String replaceAll();
*/
import java.util.*;
class RegexDemo
{
public static void main(String[] args)
{
//checkQQ();
//demo();
//checkTel();
//splitdemo("zhangsan.lisi.wangwu","\\.");
//splitdemo("c:\\abc\\a.text","\\\\");
//splitdemo("arkktyqquizzzzo","(.)\\1+");//按照叠词进行切割,为了可以让规则的结果被重用
//String str="wer1389980000ty123456uiod23434567f5";//将字符串中的数字替换成#
//replaceAllDemo (str,"\\d{5,}","#"); //可以让规则封装成一个组用()完成。组的出现都有编号
String str1="20-10-12-14552555";//叠词替换成&
//replaceAllDemo (str1,"(.)\\1+","&");
replaceAllDemo (str1,"-"," ");
//replaceAllDemo (str1,"(.)\\1+","$1");
} //从1开始,想要使用已有的组可以通过\n(n是组的编号)的形式获取。
public static void splitdemo(String str,String reg)
{
String[] arr=str.split(reg);
System.out.println(arr.length);
for(String s:arr)
{
System.out.println(s);
}
}
public static void replaceAllDemo(String str,String reg,String newStr)
{
str=str.replaceAll(reg,newStr);
System.out.println(str);
}
/*
匹配手机号段只有 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="c844444";
String reg="[a-zA-Z]\\d*";
boolean b=str.matches(reg);
System.out.println(b);
}
/*对qq号码进行校验
要求:5-15 0不能开头,只能是数字
*/
public static void checkQQ()
{
String qq="123454";
String regex="[1-9]\\d{4,14}";
boolean flag=qq.matches(regex);
if(flag)
System.out.println(qq+"...is ok");
else
System.out.println(qq+"...不合法");
}
}