首页 > 技术文章 > 正则表达式(字符类、预定于字符类、数量词)

zhai1997 2019-08-14 21:02 原文

1、正则表达式

正则表达式(Regular Expression)简写为regex、regexp或RE。

(1)基本规则:

字符类:

[abc] 为abc三个字符中的其中一个。

[^abc]除了abc三个字符以外的其他字符。

[a-z A-Z]大写字母或小写字母。

[0-9]一个数字。

[a-zA-Z_0-9]字母、数字、下划线。

(2)预定义字符类:

一个点:代表任意字符

\d:相当于 [0-9]一个数字  

\w:  相当于 [a-zA-Z_0-9]字母、数字、下划线

(3)数量词:

x?   x出现一次或零次

x*   零次或多次

x+  一次或多次

x{n}  出现n次

x{n,}至少n次

x{n,m}n到m次

(4)实例:

创建正则表达式类,其中共有三个方法,对手机号、QQ号、密码进行匹配:

public class RegexDemo {
    
    public  void checkTel(String str){
        String telNumber = str;    //String类的方法matches
        boolean b = telNumber.matches("1[34857][\\d]{9}");
        System.out.println(b);
    }
    //第一位必须为1第二位必须尾34857中的一个,后9位为数字
    public  void checkQQ(String str){
        String QQ =str;//检查QQ号码和规则是否匹配,String类的方法matches
        boolean b = QQ.matches("[1-9][\\d]{4,9}");
        System.out.println(b);
    }
    //第一位位1-9数字,后面有4-9位,且全为数字
    public void checkPassWord(String str) {
        String PassWord=str;
        boolean b=PassWord.matches("[a-zA-Z_0-9]{6}");
        System.out.println(b);
    }
    //密码共有六位,为字母数字下划线
}

测试类:

import java.util.Scanner;
public class Test extends RegexDemo {
public static void main(String[] args) {
    RegexDemo re=new RegexDemo();
    Scanner sc1=new Scanner(System.in);
    System.out.println("请输入您的QQ号码:");
    String str1=sc1.nextLine();
    re.checkQQ(str1);
    Scanner sc2=new Scanner(System.in);
    System.out.println("请输入您的手机号码:");
    String str2=sc2.nextLine();
    re.checkTel(str2);
    Scanner sc3=new Scanner(System.in);
    System.out.println("请输入您的密码:");
    String str3=sc3.nextLine();
    re.checkPassWord(str3);
}
}

 

推荐阅读