黑马程序员 java基础之正则表达式
正则表达式:
正则表达式:符合一定规则的表达式
作用:用于专门操作字符串
特点:用于一些特定的符号来表示一些代码操作,着样简化书写。
所以学习正则表达式,就是在学习一些特殊符号的使用。
好处:可以简化字符串的复杂操作。
具体操作工能
1,匹配 boolean matches(String regex);用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false.
2,切割 String[] split(String regex);
3,替换:replaceAll(String reg,String newStr);
匹配实例:
/*
对QQ号码进行校验,要求5~15位,0不能开头,只能是数字。
用到正则表达式匹配:
*/
class RegexDemo
{
public static void main(String[] args)
{
String qq="057896789";
checkQQ(qq);
}
//对QQ号码进行校验,要求5~15位,0不能开头,只能是数字。
//用到正则表达式匹配:
public static void checkQQ(String qq)
{
String regex="[1-9][0-9]{4,14}";//定义规则
boolean flag=qq.matches(regex);//利用规则对qq进行匹配
if(flag)
System.out.println("QQ号码正确");
else
System.out.println("QQ号码非法");
}
}
对QQ号码进行校验,要求5~15位,0不能开头,只能是数字。
用到正则表达式匹配:
*/
class RegexDemo
{
public static void main(String[] args)
{
String qq="057896789";
checkQQ(qq);
}
//对QQ号码进行校验,要求5~15位,0不能开头,只能是数字。
//用到正则表达式匹配:
public static void checkQQ(String qq)
{
String regex="[1-9][0-9]{4,14}";//定义规则
boolean flag=qq.matches(regex);//利用规则对qq进行匹配
if(flag)
System.out.println("QQ号码正确");
else
System.out.println("QQ号码非法");
}
}
切割:
public static void splitDemo(String str)
{
String reg=" +";//按照一个或多个空格切割
String reg2="\\.";//按照“.”切割
String reg3="\\\\";//按照“\\”切割
String reg4="(.)\\1+";//按照叠起切割
/*
为了让规则的结果可以被重用
可以将规则封装成一个组。用()完成,组的出现都有编号,
从1开始,想要使用已有的组,可以通过\n(n是组的编号)的形式来获取。
*/
String[] arr=str.split(reg4);
for(String s:arr)
{
System.out.println(s);
}
}
String reg=" +";//按照一个或多个空格切割
String reg2="\\.";//按照“.”切割
String reg3="\\\\";//按照“\\”切割
String reg4="(.)\\1+";//按照叠起切割
/*
为了让规则的结果可以被重用
可以将规则封装成一个组。用()完成,组的出现都有编号,
从1开始,想要使用已有的组,可以通过\n(n是组的编号)的形式来获取。
*/
String[] arr=str.split(reg4);
for(String s:arr)
{
System.out.println(s);
}
}
替换:
public static void replaceAllDemo(String str)
{
System.out.println(str);
String reg="\\d{4,}";//指定规则为4个或4个以上的数字。
str=str.replaceAll(reg,"*");//替换为“*”;
System.out.println(str);
{
System.out.println(str);
String reg="\\d{4,}";//指定规则为4个或4个以上的数字。
str=str.replaceAll(reg,"*");//替换为“*”;
System.out.println(str);
}
获取:
4,获取:
操作步骤:
1,将正则表达式封装成对象。
2,让正则对象和要操作的字符串相关联、
3,关联后,获取正则匹配引擎、
4,通过正则匹配引擎对符合规则的字符串进行操作,比如取出
public static void getDemo(String str)
{
String reg="[a-zA-Z]{3}";
//将正则封装成对象
Pattern p=Pattern.compile(reg);
//让正则对象和要作用的字符串相关联,获取匹配器对象
Matcher m=p.matcher(str);
//将规则作用到字符串上,查找与之匹配的子序列。
while(m.find())
{
System.out.println(m.group());//获取匹配后的结果。
}
}
String reg="[a-zA-Z]{3}";
//将正则封装成对象
Pattern p=Pattern.compile(reg);
//让正则对象和要作用的字符串相关联,获取匹配器对象
Matcher m=p.matcher(str);
//将规则作用到字符串上,查找与之匹配的子序列。
while(m.find())
{
System.out.println(m.group());//获取匹配后的结果。
}
}