正则表达式:符合一定规则的表达式,专门用于操作字符串
特点:用一些特定的符号来表示一些代码操作,可以简化书写。
学习正则表达就是学习一些特殊符号的使用。
功能:
1.匹配,String, matches
校验QQ号码:要求,5-15位,不能以开头,只能是数字。
package com.zenze;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchDemo
{
public static void main(String[] args)
{
checkEmail();//校验邮件
// ipSort();
// instanceDemo();//实例演示
// getDemo();//获取
// replaceDemo();//替换
// spliteDemo();//切割
// matcherQQ();//匹配QQ号
// matchesPhoneNumber();//匹配电话号码
}
// 匹配QQ号,要求QQ号在5到15位,不能以0开头。
public static void matcherQQ()
{
String qq = "146357435143";
// 匹配规则
String regex = "[1-9]\\d{4,14}";
boolean flag = qq.matches(regex);
System.out.println(flag);
}
// 匹配手机号码,以13,15,18,开头。并且是11位的。
public static void matchesPhoneNumber()
{
String PNumber = "15466993547";
String regex = "[1][358]\\d{9}";
boolean b = PNumber.matches(regex);
System.out.println(b);
}
// 切割
public static void spliteDemo()
{
String kk = "dkafjdkkkeaqeriiifdajjjdalkfieoweeedlkafjifuiff";
String dir = "c:\\ada\\ead\\ca\\";
String name2 = "zhangsan.lishi.wangwu.zhaoliu";
String name = "zhangsan lishi wangwu zhaoliu";
String regex = " +";//按多个空格切割。
String regex2 = "\\.";//按照一个点切割。
String regex3 = "\\\\";//按照反斜杠切割。
String regex4 = "(.)\\1+";//按照叠词切割
String[] str2 = kk.split(regex4);
for(String s:str2)
{
System.out.println(s);
}
}
// 替换
public static void replaceDemo()
{
// 替换叠词
String str2 = "dakkkewlkallkkd";
// 把数字连续出现5次以上的替换成#;
String str = "fuoiaweu3235445fkdaj3246879682fjdkla";
String regex = "\\d{5,}";
str = str.replaceAll(regex, "#");
System.out.println(str);
System.out.println(str2.replaceAll("(.)\\1+", "$1"));
}
// 获取
public static void getDemo()
{
String str = "dui ni ai ai ai bu wan" +
" wo ke yi tian tian nian nian yue yue dao yong yuan";
String regex = "[a-zA-Z]{3}";//获取连续出现三个字母的拼音。
Pattern p = Pattern.compile(regex);//将规则封装成对象;
// 让正则与需要作用的字符串关联获取匹配器对象。
Matcher m = p.matcher(str);
// 开始找
for(;m.find();)
{
System.out.println(m.group());
}
}
public static void instanceDemo()
{
// 把下面的变成"我要学编程"
String str = "我我我。。。要要要。。。学学学。。。编编编。。。程程程";
str = str.replaceAll("。+","");
// System.out.println(str);
str = str.replaceAll("(.)\\1+","$1");
System.out.println(str);
}
// 给IP地址排序
public static void ipSort()
{
String ip = "13.32.98.23 192.23.13.89 2.2.3.4 10.23.20.40 ";
// 先替换
ip = ip.replaceAll("(\\d+)", "00$1");
ip = ip.replaceAll("0*(\\d+)","$1");
String[] arr = ip.split(" ");
for(String s:arr)
{
System.out.println(s);
}
}
// 校验邮件
public static void checkEmail()
{
String mail = "dafkewu@163.com";
String mail2= "duezd@sina.com";
String regex = "\\w+{6,12}@\\w+(\\.[a-zA-Z]+){1,3}";
System.out.println(mail.matches(regex));
}
}