正则表达式
实例一
/**
* 正规表达式:用于操作与字符串数据
* 优点:代码简化;
* 缺点:可读性不强
* @author Administrato
*1.需求 QQ 校验
*长度:5-15,不能有字母和以0开头
*正则表达式的:字符串操作还主要集中于String,StringBuffer和StringTokenizer类
*
*/
public class ZGbiaoDaShi {
public static void main(String[] args) {
String qq="57872de大566";//生成一个字符串对象
String str="[1-9][0-9]{6,14}";//生成正规表达式[1-9]:不以0开头
boolean d=qq.matches(str);//调用了String类的public boolean matches(String regex)
//regex - 用来匹配此字符串的正则表达式 ,返回boolean类型 字符串匹配给定的正则表达式时,返回 true
System.out.println(qq+":"+d);
}
}
实例二
/**正规表达式的功能:
* A:匹配
* B切割
* C替换
* String replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
* D获取
* Reset()方法,可以将Matcher对象重新设置到当前字符序列的起始位置。
* @author Administrator
*
*/
public class ZGBDde功能 {
public static void main(String[] args) {
qiege();
pipei();
tihuan();
}
/**
* 匹配操作:
*
*/
public static void pipei(){
String str="15993890618";
String st="1[358][0-9]{9}";//[第一位是1],[二位是3,5,8,][三位是1-9],{位数是9}
boolean d=str.matches(st);//判断整个输入字符串是否匹配正则表达式模式,
//lookingAt()判断该字符串(不必是整个字符串)的始部分是否能够匹配模式。
//start()返回先前匹配的起始位置的索引,
//end()返回所匹配的最后字符的索引加一的值
//find()可以在输入的任意位置定位正则表达式,
/*lookingAt和matches()只有在正则表达式与输入的最开始出就开始匹配时才会成功。
*matches()只有在整个输入都匹配正则表达式时才会成功
*lookingAt只要输入的第一部分匹配就会成功
**/
System.out.println(str+":"+d);
}
/**
* 切割功能
* 根据匹配给定的正则表达式来拆分此字符串
* 组:(A(B(c)))从左的方向查看(A)(B)(C)
* String[] =split(String regex+)
*/
public static void qiege(){
//String str="东邪-黄药%%%%%西毒-欧阳$$$$$$南帝-段誉@@@@@北丐-洪七公#####中师-王重阳";//字符串
//String [] st=str.split("(.)\\1");//切割的方法在中的@,$,#的次数不确定的情况下("(.)\\1+")运用了组的该念
//String str="东邪-黄药师.西毒-欧阳峰.南帝-段誉 .北丐-洪七公.中师-王重阳";"."是特殊符号要反义\\符号
//String [] st=str.split("\\.");//切割的方法
String str="东邪-黄药师 西毒-欧阳 南帝-段誉 北丐-洪七公 中师-王重阳";//字符串
String [] st=str.split(" +");//切割的方法
for(String name:st){
System.out.println(name);
}
}
/*替换操作
* replaceFirst(String replacement):参数字符串replacement替换掉第一个匹配成功的部分
* replaceAll(String replacement):参数字符串replacement替换所有匹配成功的部分。
* appendRelacement(StringBuffer sbuf,String replacement):执行渐进式的替换
*/
public static void tihuan(){
String name="东邪-黄药师*****西毒-欧阳峰%%%%%%南帝-段誉*****北丐-洪七公$$$$$$中师-王重阳";
String str=name.replaceAll("(.)\\1+","@");//替换将*$%="(.)\\1+"转换成(&) String replaceAll(String regex, String replacement)
//使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符
System.out.println(str);
String st="15993896018";
String s=st.replaceAll("(\\d{3})\\d{5}(\\d{3})", "$1*****$4");
System.out.println(s);
}
public static void huoqu(){
}
}