java入门-----正则表达式

java入门-----正则表达式

正则表达式

含义:用来描述或者匹配一系列符合某个语句规则的字符串

Pattern:代表正则表达式的匹配模式

Matcher:提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持

案例:把一个字符串中的电话号码替换成130****1111类型

package com.dream.regex_class;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test01 {
	
	public static void main(String[] args) {
	String str = "小红13055648889铁蛋18254657777";

    //正则表达式的字符串
    String regex = "(\\d{3})(\\d{4})(\\d{4})";

    String replaceAll = str.replaceAll(regex,"$1****$3");
    //底层原理
    //Pattern pattern = Pattern.compile(reger);//获取正则表达式的对象
    //Matcher matcher = pattern.matcher(str);//匹配结果
    //String replaceAll = matcher.replaceAll("$1****$3");//替换 
    System.out.println(replaceAll);
	}
}

案例:校验qq邮箱

package com.dream.regex_class;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test02 {
	
	public static void main(String[] args) {
        String str = "[email protected]";
        String  regex = "\\d{5,10}@qq.com";
        boolean matcher = str.matcher(regex);
        System.out.println(matcher);
	}
}
字符
x 字符 x
// 反斜线字符
/t 制表符 (’/u0009’)
/n 新行(换行)符 (’/u000A’)
/r 回车符 (’/u000D’)
/e 转义符 (’/u001B’)
. 任意字符
字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
/d 数字:[0-9]
/D 非数字: [^0-9]
/s 空白字符:[ /t/n/x0B/f/r]
/S 非空白字符:[^/s]
/w 单词字符:[a-zA-Z_0-9]
/W 非单词字符:[^/w]
边界匹配器
^ 行的开头
$ 行的结尾
/b 单词边界
/B 非单词边界
/A 输入的开头
/G 上一个匹配的结尾
/Z 输入的结尾,仅用于最后的结束符(如果有的话)
/z 输入的结尾
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
Reluctant 数量词
X?? X,一次或一次也没有
X*? X,零次或多次
X+? X,一次或多次
X{n}? X,恰好 n 次
X{n,}? X,至少 n 次
X{n,m}? X,至少 n 次,但是不超过 m 次
Possessive 数量词
X?+ X,一次或一次也没有
X*+ X,零次或多次
X++ X,一次或多次
X{n}+ X,恰好 n 次
X{n,}+ X,至少 n 次
X{n,m}+ X,至少 n 次,但是不超过 m 次
Logical 运算符
XY X 后跟 Y
X|Y X 或 Y
(X) X,作为捕获组

字符类运算符的优先级如下所示,按从最高到最低的顺序排列:

1 字面值转义 /x
2 分组 […]
3 范围 a-z
4 并集 [a-e][i-u]
5 交集 [a-z&&[aeiou]]

你可能感兴趣的:(java入门,正则表达式,java)