正则表达式基础1

注释:正则表达式的学习记录1

1.正则表达式

1.1定义

正则表达式是具有特殊含义的字符串,用来定义匹配规则,在Pattern类中有简单的规则定义。可以结合字符串类的方法使用。

1.2功能

正则表达式可用于限制账号密码的长度,用于匹配符合规则的字符串,用来检索、替换那些符合某个规则的文本等。

2.语法及实例

2.1 匹配规则

所谓正则表达式的匹配规则,就是对应匹配的字符产生相应的效果。

语法规则:

字符

1.当正则表达式的匹配规则为字符“x”,则要匹配的字符串内容就是“x”。
2.当正则表达式的匹配规则为“\”,则要匹配的字符串内容就是反斜线字符“\”;。
3.当正则表达式的匹配规则为“\t”,则对应的效果就是产生一个制表符的空间。
4.当正则表达式的匹配规则为“\n”,则对应的效果就是换行,光标在原有位置的下一行。
5.当正则表达式的匹配规则为“\r”,则对应的效果就是回车后的效果,光标来到下一行行首。

字符类

6.当正则表达式的匹配规则为字符类:[abc]
含义:代表的是字符a、b 或 c
则要匹配的内容就是字符a,或者字符b,或字符c的一个。
7.当正则表达式的匹配规则为字符类:[^abc]
含义:代表的是除了字符a、b 或 c以外的任何字符 则要匹配的内容就是不是字符a,或者不是字符b,或不是字符c的一个。
8.当正则表达式的匹配规则为字符类:[a-zA-Z] 
含义:a到 z 或 A到 Z,两头的字母包括在内(范围) 
则要匹配的是一个大写或者小写字母。
9.当正则表达式的匹配规则为字符类:[0-9] 
含义:0到9的字符都包括(范围)
则要匹配的是一个数字。 

10.当正则表达式的匹配规则为字符类:[a-zA-Z_0-9] 含义:代表的字母或者数字或者下划线(即单词字符)

预定义字符类

11.当正则表达式的匹配规则为“.”,则表示匹配任何字符。
12.当正则表达式的匹配规则为“\d”,则表示匹配数字0到9,相当于[0-9]。
13.当正则表达式的匹配规则为“\w”,则表示匹配字母或数字或者下划线,相当于[a-zA-Z_0-9]。

边界匹配器

14.当正则表达式的匹配规则为“^”,则代表行的开头,匹配从“^”后面的内容开始。
15.当正则表达式的匹配规则为“$”,则代表行的结尾,匹配以“$”前面的内容结束。
16.当正则表达式的匹配规则为“\b”,则代表单词边界。

数量词

17.当正则表达式的匹配规则为“x?”,则代表“x”出现一次或者一次都没出现。
18.当正则表达式的匹配规则为“x*”,则代表“x”出现零次或者出现多次。
19.当正则表达式的匹配规则为“x+”,则代表“x”出现一次或者出现多次。
20.当正则表达式的匹配规则为“x{n}”,则代表“x”恰好出现n次。
21.当正则表达式的匹配规则为“x{n,}”,则代表“x”至少出现n次。
22.当正则表达式的匹配规则为“x{n,m}”,则代表“x”至少出现n次,但不超过m次。

2.2 java中字符串类涉及的常见正则表达式

boolean:   matches(String regex),返回boolean类型值告知此字符串是否匹配给定的正则表达式。  
String[]:   split(String regex),根据给定正则表达式的匹配拆分此字符串。  
String:    replaceALL(String regex,String replacement),使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串。  

实例小试

例1:校验qq号码

1: 要求qq号必须是5-15位数字
2: qq号不能以0开头
代码演示:
import java.util.*;
public class RegexDemo {
    public static void main(String[] args) {
        checkQQ();
    }
    /*
     * 本函数用于检查QQ号码是否合法,具体实现:
     * 1.不能以0开头;2.必须是纯数字;3.长度在5到15之间
     */
    public static void checkQQ(){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入QQ号:");
        String QQ = input.next();
        String regex = "[1-9][0-9]{4,14}";
        //检查QQ号码和规则是否匹配,String类的方法matches
        boolean b = QQ.matches(regex);
        //当输出的布尔型为true时,表示所输入的QQ号正确,反之 输入错误
        System.out.println(b);
    }
}

演示结果



猜你喜欢

转载自blog.csdn.net/daimaxiaoxin/article/details/79649875