正则表达式学习笔记

1. 字符类

[abc]      a,b或c

[^abc]     任何字符,除了a,b,c

[a-zA-Z]   所有字母

[a-d[m-p]]   a-z或m-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](减去)

2. 预定义字符类

.        任何字符

\d      数字[0-9]

\D     非数字[^0-9]

\s      空白字符[ \t\n\x0B\f\r]

\S      非空白字符[^\s]

\w     单词字符[a-zA-Z_0-9]

\W    非单词字符

3. 数量词

x?      x一次或一次也没有,至多一次

x*       x零次或多次

x+       x一次或多次,至少一次

x{n}      x恰好n次

x{n,}    x至少n次

x{n,m}    x至少n次但不多于m次

4. 根据空格切割

String[] arr = st.split(" ");

5.正则表达式的替换和分组

//用空格代替字符串中的数字

String regex = "\\d";

String target = st.replaceAll(regex," ");

//分组

//()代表一组,()后面数字代表出现次数

String regex = "(.)\\1(.)\\2"   叠词

6. Matcher和Pattern

Pattern p = Pattern.complie("1[356789]\\d{9}");

Matcher m = p.matcher(s);

while(m.find()){

    System.out.println(m.group());

 

你可能感兴趣的:(JAVA)