1.调用方法
//: 判断是否匹配正则表达式,匹配返回true,不匹配返回false。regex表示的是正则表达式
public boolean matches(String regex)
2.匹配模式
2.1字符类(默认匹配一个字符):
[abc] | 匹配只包含是a,b或c |
[^abc] | 匹配不包含abc的任何字符 |
[a-zA-Z] | 匹配a到z,A到Z的所有字符 |
[a-d[m-p]] | 匹配a到d,或m通过p |
[a-z&&[def] | 匹配d,e,或f(交集) |
[a-z&&[^bc] | 匹配a到z,除了b和c |
[a-z&&[^m-p]] | 匹配a到z,除了m到p |
2.2预定义的字符类(默认匹配一个字符):
. (可能看不清,这是英文字符的点号) | 任何字符 |
\d | 一个数字: [0-9] |
\D | 非数字: [0-9] |
\s | 一个空白字符: [\t\n\xoB\A\r] |
\S | 非空白字符: [A\s] |
\w | [a-zA-Z_0-9] 英文、数字、下划线 |
\W | [a\w]一个非单词字符 |
2.3贪婪的量词(配合上面的规则可以匹配多个字符)
X? | X,一次或根本不 |
X* | X,零次或多次 |
X+ | X,一次或多次 |
X{n} | X,正好辣n次 |
X{n,} | X,至少n次 |
X{n,m} | X,至少n但不超过m次 |
3.正则表达式在字符串方法中的使用
3.1按照正则表达式匹配的内容进行替换,返回一个新字符串
public String replaceAll(String regex,String newStr)
3.2按照正则表达式匹配的内容进行分割字符串,返回一个字符串数组
public Stringl] split(String regex)
4.利用正则表达式爬取内容
以下是一个简单的泛分析例子,一般的编写顺序都是依照以下顺序
public class RegexDemo05 {
public static void main(String[] args) {
//带匹配或者爬取的字符内容
String rs = "来学校hoaihfaooiasfjaio,电话020-43422424,或者联系邮箱";
//1.定义爬取规则,字符串形式
String regex = "\\w{1,30}|(400-?\\d{3,9}-?\\d{3,9})";
//2.把规则编译成匹配对象
Pattern pattern = Pattern.compile(regex);
//3.得到一个内容匹配器对象
Matcher matcher = pattern.matcher(rs);
//开始找
while(matcher.find()){
String rs1 = matcher.group();
System.out.println(rs1);
}
}
}