正则表达式
匹配规则:


正则表达式的常见案例:

package com.zjm.Regex;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//需求:校验手机号码 邮箱 电话号码
//checkPhone();
//checkTel();
//checkEmail();
checkMoney();
}
//11位手机号
public static void checkPhone(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入你的手机号:");
String phone = sc.next();
if(phone.matches("1[3-9]\\d{9}")){
System.out.println("输入正确,注册成功!");
break;
}else{
System.out.println("输入有误,请重新输入!");
}
}
}
//带区号电话
public static void checkTel(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入你的电话号码:");
String tel = sc.next();
//027-3572457 0273572457
if(tel.matches("0\\d{2,6}-?\\d{5,20}")){
System.out.println("输入正确,注册成功!");
break;
}else{
System.out.println("输入有误,请重新输入!");
}
}
}
//邮箱号
public static void checkEmail(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入你的邮箱号码:");
String email = sc.next();
//326885787@qq.com 231375dashd@163.com 32743dag23@pic.com.cn
if(email.matches("\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2}")){
System.out.println("输入正确,注册成功!");
break;
}else{
System.out.println("输入有误,请重新输入!");
}
}
}
//金额
public static void checkMoney(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入你的金额:");
String money = sc.next();
if(money.matches("\\d+(\\.\\d{1,2})?")){
System.out.println("输入正确!");
break;
}else{
System.out.println("输入有误,请重新输入!");
}
}
}
}
正则表达式的在方法中的应用:

package com.zjm.Regex;
public class Demo02 {
public static void main(String[] args) {
String names = "小舞dasj132jdhsjfs唐三dsja43kfsks飞猪djsk_h1小明";
String[] arrs = names.split("\\w+");
for (String s : arrs) {
System.out.println(s);
}
String names2 = names.replaceAll("\\w+"," ");
System.out.println(names2);
}
}
正则表达式爬取信息:

package com.zjm.Regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo03 {
public static void main(String[] args) {
String rs = "来黑马程序学习Java,电话020-43422424,或者联系邮箱" +
"itcast@itcast.cn,电话18762832633,0203232323" +
"邮箱bozai@itcast.cn, 400-100-3233 ,4001003232";
//1.定义爬取规则,字符串形式
String regex = "\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2}" +
"|0\\d{2,6}-?\\d{5,20}|400-?\\d{3,9}-?\\d{3,9}";
//2.把爬取规则编译成匹配对象
Pattern pattern = Pattern.compile(regex);
//3.得到一个内容匹配对象
Matcher matcher = pattern.matcher(rs);
//4.开始爬取
while (matcher.find()){
String rs1 = matcher.group();
System.out.println(rs1);
}
}
}
浙公网安备 33010602011771号