正则表达式

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

正则表达式生成

相关推荐
小糖学代码4 天前
LLM系列:1.python入门:16.正则表达式与文本处理 (re)
人工智能·pytorch·python·深度学习·神经网络·正则表达式
Irene19914 天前
(课堂笔记)SQL 临时表、视图、正则表达式
正则表达式·视图·临时表
2301_800976935 天前
正则表达式
开发语言·python·正则表达式
学会去珍惜5 天前
c语言“或”符号
正则表达式·编程语言·文件操作·并发编程·文本处理
计算机安禾6 天前
【Linux从入门到精通】第27篇:文本处理三剑客(上)——grep 正则表达式实战
linux·运维·正则表达式
zl_dfq11 天前
服务器设计 之 【正则表达式及C++正则库的简介与使用】
正则表达式
RNEA ESIO12 天前
SQL中的REGEXP正则表达式使用指南
数据库·sql·正则表达式
研☆香14 天前
聊一聊js中的正则表达式的应用
前端·javascript·正则表达式
麦芽糖021915 天前
python进阶六 正则表达式
android·python·正则表达式
Watermelo61717 天前
理解 JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义的那些事
前端·javascript·vue.js·chrome·nginx·正则表达式·seo