码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习笔记21(String类补充:正则表达式)

时间:2018-01-11 15:46:43      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:gpo   false   []   练习   bool   span   验证用户名   简单介绍   str1   

正如python的re模块,不过Java和Python的正则表达式有一些区别,这里做简单介绍,具体的细节可以参考网上其他的文章:

功能:可以用于检验一个字符串,比如验证用户名,验证密码格式,验证是否是邮箱,等等

示例:

"[0-9]{6,12}"匹配规则:6到12位的数字,比如123456789就是true,12345就是false

"1[3578][0-9]{9}"匹配规则:1开头,第二位是3578中的一个,后面九个任意数字,比如13345678912就是true

"a*b"匹配规则:在多个a或者0个a之后有一个b,b必须是最后一个字符,比如aaaaab就是true,abc就是false

 

String类中还有几个方法上篇没有提到,这里会用到 

基础知识不再介绍,示例:

matches方法:

package demo;

public class RegexDemo {
    public static void main(String[] args) {
        //检查QQ号码,不能0开头,全数字,5位到10位
        checkQQ();
        //检查手机号,1开头,第二位是34578,共11位
        checkTel();
    }
    public static void checkQQ(){
        String QQ = "123456";
        boolean b = QQ.matches("[1-9][\\d]{4,9}");
        System.out.println(b);//true
    }
    public static void checkTel(){
        String telNumber = "13312345678";
        boolean b = telNumber.matches("1[34578][\\d]{9}");
        System.out.println(b);//true
    }
}

 

split方法:

package demo;

public class RedexDemo {
    
    public static void main(String[] args) {
        split_1();
        split_2();
        split_3();
    }
    
    public static void split_1(){
        String str = "I   love         java";
        String[] strArr = str.split(" +");
        for (int i = 0; i < strArr.length; i++) {
            System.out.println(strArr[i]);
        }
        //打印出:I         love       java
    }
    
    public static void split_2(){
        String str = "10-12-45-78-62";
        String[] strArr = str.split("-");
        for (int i = 0; i < strArr.length; i++) {
            System.out.println(strArr[i]);
        }
        //打印出:10           12        45        78        62
    }
    
    public static void split_3(){
        String str = "192.168.160.1";
        String[] strArr = str.split("\\.");
        for (int i = 0; i < strArr.length; i++) {
            System.out.println(strArr[i]);
        }
        //打印出:192    168        160        1
    }
}

 

 

replaceAll方法:

package demo;

public class RedexDemo {
    
    public static void main(String[] args) {
        replaceAll_1();
    }
    
    public static void replaceAll_1(){
        String str = "Hello666123Ilove789java";
        String str1 = str.replaceAll("[\\d+]","#");
        System.out.println(str1);
        //输出:Hello######Ilove###java
        
        String str2 = str.replaceAll("[\\d]+", "#");
        System.out.println(str2);
        //输出:Hello#Ilove#java
    }
}

 

 

正则表达式练习:

 

package demo;

public class RedexDemo {
    public static void main(String[] args) {
        //检查邮箱地址
        checkMail();
    }
    public static void checkMail(){
        String email = "abc123@sina.com.cn";
        boolean b = email.matches("[a-zA-Z0-9_]+@[0-9a-z]+(\\.[a-z]+)+");
        System.out.println(b);//true
    }
}

 

Java学习笔记21(String类补充:正则表达式)

标签:gpo   false   []   练习   bool   span   验证用户名   简单介绍   str1   

原文地址:https://www.cnblogs.com/xuyiqing/p/8266896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!