【Java基础】正则表达式
正则表达式
一般面向搜索引擎编写正则表达式
举例
String qqRegex = "[1-9]\\d{4,11}";
System.out.println("02333133".matches(qqRegex));
String telRegex = "[1][3-9]\\d{9}";
System.out.println("13111111a31".matches(telRegex));
String emailRegex = "\\w+[@][\\w&&[^_]]+(\\.[a-z]{2,3})+";
System.out.println("123@qq.com".matches(emailRegex));
System.out.println("123@qqqq.qq.com".matches(emailRegex));
System.out.println("123qq.com".matches(emailRegex));
String类中与正则表达式有关的方法:
String replaceAll(String regex, String newStr):按照正则表达式匹配的内容进行替换。
String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
使用正则表达式爬取信息
Pattern类
正则表达式的编译表示形式。
指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。
String data = "手机:15111111111;15222222222;"
+ "电话:010-11111111;0145-23456789";
Pattern pattern = Pattern.compile("[1][3-9]\\d{9}|[0]\\d{2,4}-?\\d{8}");
Matcher matcher = pattern.matcher(data);
while(matcher.find()) {
System.out.println(matcher.group());
}