正则表示
- 正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性
- 找API:Pattern
常用的matches表达式规则
基础代码演示:
1.查看qq是否符合要求
/**
* 判断是否符合qq号的要求
* @param args
*/
public static void main(String[] args) {
System.out.println(ZZBDS("123"));
System.out.println(ZZBDS("123456"));
System.out.println(ZZBDS("12345678911"));
System.out.println(ZZBDS("123a"));
}
public static boolean ZZBDS(String qq){
return qq!=null && qq.matches("\\d{4,10}");
}
2.查看余额人民币是否符合要求,这里0开头的也算,基础并未过多逻辑判断
public static void ZZBDS(){
Scanner sc = new Scanner(System.in);
while (true){
String a = sc.next();
if(a.matches("\\d{1,10}\\.?\\d{0,2}")){
System.out.println("cg");
break;
}else {
System.out.println("sb");
}
}
3.查看电话号码是否符合要求
public static void checkTel(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请您输入您的电话号码:");
String tel = sc.next();
// 判断邮箱格式是否正确 027-3572457 0273572457
if(tel.matches("0\\d{2,6}-?\\d{5,20}")){
System.out.println("格式正确,注册完成!");
break;
}else {
System.out.println("格式有误!");
}
}
}
4.查看手机号是否符合要求
public static void Phone(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请您输入您的注册手机号码:");
String phone = sc.next();
// 判断手机号码的格式是否正确
if(phone.matches("1[3-9]\\d{9}")){
System.out.println("手机号码格式正确,注册完成!");
break;
}else {
System.out.println("格式有误!");
}
}
}
5.查看邮箱是否符合规则
public static void checkEmail(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请您输入您的注册邮箱:");
String email = sc.next();
// 判断邮箱格式是否正确 3268847878@qq.com
// 判断邮箱格式是否正确 3268847dsda878@163.com
// 判断邮箱格式是否正确 3268847dsda878@pci.com.cn
if(email.matches("\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2}")){
System.out.println("邮箱格式正确,注册完成!");
break;
}else {
System.out.println("格式有误!");
}
}
}
正则表达式的删除和替换套用
- split();
- reolaceAll();
public static void main(String[] args) {
String gua = "西瓜dhdfhd42哈密瓜43fdffdfaf香瓜";
String[] arr = gua.split("\\w+");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
String gua1 = gua.replaceAll("\\w+", " ,");
System.out.println(gua1);
}
正则表达式爬取信息
可以爬东西,抽象的写一个方法,可以去爬一些想要的资料,懂的都懂,看代码自己找启发
public static void main(String[] args) {
String rs = "某某房地产,电话011-120120,或者联系邮箱" +
"niuma@zpy.com,电话13012038551,0405412594" +
"邮箱xigua@wz.cab,400-120-799 ,400802820";
// 需求:从上面的内容中爬取出 电话号码和邮箱。
// 1、定义爬取规则,字符串形式
//|就是或的意思,一组一组分成
String regex = "(\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2})|(1[3-9]\\d{9})" +
"|(0\\d{2,6}-?\\d{5,20})|(400-?\\d{3,9}-?\\d{3,9})";
// 2、把这个爬取规则编译成匹配对象。
Pattern pattern = Pattern.compile(regex);
// 3、得到一个内容匹配器对象
Matcher matcher = pattern.matcher(rs);
// 4、开始找了
//find开始找的意思,返回值是boolean类型
//group一组一组的找出来,和上面|对应一组
while (matcher.find()) {
String rs1 = matcher.group();
System.out.println(rs1);
}
}