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" ) ;
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 = "1750159674@qq.com" ;
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]]