正则表达式:符合一定规则的表达式
作用:用于专门操作字符串
特点:用于一些特点的符号来表示一些代码操作。这样的就简化书写
学习正则表达式就是学习一些特殊符号的使用
具体操作功能:
1.匹配:String 类的matches()
2.切割:String类的split()
3.替换:String类的replaceAll()
4.获取:将字符串中符合规则的字串取出
(1)将正则表达式封装成对象
(2)让正则对象和要操作的字符串相关联。
(3)关联后,获取正则匹配引擎。
(4)通过引擎对符合规则的字串进行操作,比如取出。
{n}指定的为剩余的9位,不能多不能少;
{n,m}只能是n到接下来的m位,要匹配的字符串可以多余m位,但是不能少。
{n,}指定是n位数以上的所有的
"(.)\\1"按照叠词完成切割,为了可以让规则的结果重用,可以将规则封装一个组。
用()完成,组的出现都有编号。从1开始,
想要使用已有的组可以通过 \n(n就是组的编号)的形式来获取。
"\\\\"按照\\进行切割
作用:用于专门操作字符串
特点:用于一些特点的符号来表示一些代码操作。这样的就简化书写
学习正则表达式就是学习一些特殊符号的使用
具体操作功能:
1.匹配:String 类的matches()
2.切割:String类的split()
3.替换:String类的replaceAll()
4.获取:将字符串中符合规则的字串取出
(1)将正则表达式封装成对象
(2)让正则对象和要操作的字符串相关联。
(3)关联后,获取正则匹配引擎。
(4)通过引擎对符合规则的字串进行操作,比如取出。
{n}指定的为剩余的9位,不能多不能少;
{n,m}只能是n到接下来的m位,要匹配的字符串可以多余m位,但是不能少。
{n,}指定是n位数以上的所有的
"(.)\\1"按照叠词完成切割,为了可以让规则的结果重用,可以将规则封装一个组。
用()完成,组的出现都有编号。从1开始,
想要使用已有的组可以通过 \n(n就是组的编号)的形式来获取。
"\\\\"按照\\进行切割
" +":" +"出现一次或多次,用"."则必须用"\\."进行转义
class RegexDemo
{
public static void main(String[] args)
{
//demo();
checkTel();
//splitDemo("c:\\abc\\a.txt","\\\\");//按照\\进行切割
//splitDemo("erkktyqquiio","(.)\\1");
//replaceAllDemo("we54544456464sy455446dsdsa5451","\\d{0,}","#");
}
public static void demo(){
String str="56566565666666464";
//char[] buf=str.toCharArray();
String reg="[1-9][[0-9]&&[^a-zA-Z]]{4,14}";
boolean b=str.matches(reg);
System.out.println(b);
}
//匹配手机号 13xxx 15xxx 18xxx
public static void checkTel(){
String tel="151723174065";
String telReg="1[358]\\d{3,}";
boolean flag=tel.matches(telReg);
System.out.println(flag);
}
public static void splitDemo(String str,String reg){
//String str="zhangsan lisi wangwu";
//str="c:\\abc\\a.txt";
//String reg=" +";//
String[] arr=str.split(reg);
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);
}
}