正则表达式

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

正则表达式生成

相关推荐
疯一样的码农1 天前
Python 正则表达式(RegEx)
开发语言·python·正则表达式
小白学大数据1 天前
正则表达式在Kotlin中的应用:提取图片链接
开发语言·python·selenium·正则表达式·kotlin
萧鼎2 天前
【Python】强大的正则表达式工具:re模块详解与应用
开发语言·python·正则表达式
叮当喵是mao3 天前
接口测试(十)jmeter——关联(正则表达式提取器)
jmeter·正则表达式
Winston Wood4 天前
你需要了解的正则表达式相关知识
正则表达式
落霞的思绪5 天前
Javase——正则表达式
正则表达式
crownyouyou6 天前
python正则表达式
开发语言·python·正则表达式
ch_s_t7 天前
正则表达式
正则表达式
徐浪老师8 天前
两个有序链表序列的交集
正则表达式
flying robot8 天前
正则表达式(Regular Expressions)
正则表达式