ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

正则表达式(Java)

2026/9/25 6:14:20 拓冰建站 浏览量
正则表达式(Java)

一、初步认识

正则表达式是由一些特定的字符组成,代表一个规则,可以用来检验数据格式是否合法,也可以在一段文本中查找满足要求的内容。

如果使用代码检验数据是否正确:

public class RegexTest1 {public static void main(String[] args) {//需求:检验QQ号是否正确,全是数字不能以0开头,长度6-20System.out.println(checkQQ(null));System.out.println(checkQQ("3563gjhg88"));System.out.println(checkQQ("764765467"));}public static boolean checkQQ(String qq){//1.判断qq号码是否为nullif(qq == null || qq.startsWith("0") || qq.length()<6 || qq.length()>20){//String提供的一个startWith()方法return false;}//2.判断qq号码中全是数字// 比如qq号是2894qqi//遍历字符for (int i = 0; i < qq.length(); i++) {//根据索引提取当前位置处的字符char ch = qq.charAt(i);//需要判断ch记录的字符,如果不是数字,就不合法,底层比较编号if(ch < '0' || ch > '9'){return false;}}return true;}
}

使用正则表达式:

 二、书写规则

String提供了一个匹配正则表达式的方法:  图片来源heimait

\\d才会当成\d使用

(?i)表示忽略大小写

三、应用案例

检验手机号码和邮箱是否正确:

import java.util.Scanner;public class Test2 {public static void main(String[] args) {
//        checkPhone();checkMail();}public static void checkPhone(){while (true) {System.out.println("请输入电话号码");Scanner sc = new Scanner(System.in);String phone = sc.next();//17728365549 010-8818339 010293737if(phone.matches("(1[3-9]\\d{9})|(0\\d{2,7}-?[1,9]\\d{4,19})")){System.out.println("输入的号码没有问题");break;}else{System.out.println("输入的号码有问题,请重新输入号码");}}}public static void checkMail(){while (true) {System.out.println("请输入邮箱");Scanner sc = new Scanner(System.in);String mail = sc.next();//1241213254@qq.com   1422341@qq.com  hekiii@iaii.com.cnif(mail.matches("\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2}")){System.out.println("输入的邮箱没有问题");break;}else{System.out.println("输入的邮箱有问题,请重新输入邮箱");}}}}

查找信息:
1.定义查找规则 String regex = " .... "

2.把正则表达式封装成一个Pattern对象  Pattern pattern = Pattern.compile(regex)

3.通过pattern对象去获取查找内容的匹配器对象  Matcher matcher = pattern.matcher(data)

4.定义一个循环开始爬取信息

while (matcher.find()){String rs = matcher.group(); rs.sout}