正则表达式

1、概念

由一些特定字符组成的字符串,代表的是规则

2、作用

  1. 检验数据格式是否合法
  2. 从文本中获取指定规则的数据
java 复制代码
//获取数据的实例:文本中的电话,邮箱,座机号码,热线都提取出来。
public class Demo {
    public static void main(String[] args) {
        String data = "  电话:1866668888,18699997777\n" +
                "        或者联系邮箱:boniu@itcast.cn,\n" +
                "        座机电话:01036517895,010-98951256\n" +
                "        邮箱:bozai@itcast.cn,\n" +
                "        邮箱:dlei0009@163.com,\n" +
                "        热线电话:400-618-9090 ,400-618-4000,4006184000,4006189090";
        // 1、定义爬取规则(正则表达式)
        String regex="(1[3-9]\\d{9})|(\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)|(0\\d{2}-?\\d{8}|0\\d{3}-?\\d{7})|(400-?\\d{3}-?\\d{4})";
        // 2、把正则表达式封装成一个Pattern对象
        Pattern pattern = Pattern.compile(regex);
        // 3、通过pattern对象去获取查找内容的匹配器Matcher对象。
        Matcher matcher = pattern.matcher(data);
        // 4、定义一个循环开始爬取信息
        while (matcher.find()){
            System.out.println(" " + matcher.group());
        }
    }
}

3、常见规则

4、常见正则表达式

java 复制代码
 1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
 2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
 3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
 4 手机号码:^1[3-9]\d{9}$
 6 国内电话号码(0511-4405222、021-87888822):(0\d{2}-?\d{8})|(0\d{3}-?\d{7})
 7 身份证号(15位、18位数字):^\d{15}|\d{18}$
 8 短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
 9 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
11 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 
12 日期格式:^\d{4}-\d{1,2}-\d{1,2}
13 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
14 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
15 空白行的正则表达式:\n\s*\r    (可以用来删除空白行)
16 首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$)    (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)
17 腾讯QQ号:[1-9][0-9]{4,}    (腾讯QQ号从10000开始)
18 中国邮政编码:[1-9]\d{5}(?!\d)    (中国邮政编码为6位数字)
19 IP地址:\d+\.\d+\.\d+\.\d+    (提取IP地址时有用)
20 IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d

正则表达式生成

相关推荐
红茶要加冰2 天前
七、正则表达式
linux·运维·正则表达式·shell
Pocker_Spades_A2 天前
Python快速入门专业版(五十八)——正则表达式(re):爬虫文本提取利器(从语法到实战)
爬虫·python·正则表达式
红茶要加冰2 天前
九、文本处理三剑客——sed
linux·运维·服务器·正则表达式·shell
Bug-制造者3 天前
正则表达式 vs Shell通配符:彻底分清,告别命令行踩坑
linux·正则表达式
剑神一笑4 天前
Linux top 命令深度解析:进程监控的性能优化实战
linux·运维·正则表达式
jayson.h4 天前
正则表达式:从文件名提取器件编号
开发语言·python·正则表达式
水木流年追梦5 天前
大模型入门-应用篇3-Agent智能体
开发语言·python·算法·leetcode·正则表达式
gCode Teacher 格码致知5 天前
Python教学:正则表达式中的match 和fullmatch的经典使用-由Deepseek产生
python·正则表达式
gCode Teacher 格码致知5 天前
Python教学:正则表达式的寻找、匹配、替换、删除 四种模式案例-由Deepseek产生
开发语言·python·正则表达式
yuananyun6 天前
正则性能与灾难性回溯:如何写得快且稳,并避免线上卡死
正则表达式·正则性能优化·redos攻击