正则表达式

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

正则表达式生成

相关推荐
gnip1 小时前
总结一期正则表达式
javascript·正则表达式
77qqqiqi3 小时前
正则表达式
java·后端·正则表达式
人生在勤,不索何获-白大侠2 天前
day15——Java常用API(二):常见算法、正则表达式与异常处理详解
java·算法·正则表达式
虎皮辣椒小怪兽2 天前
正则表达式
正则表达式
Hilaku2 天前
用“人话”讲明白10个最常用的正则表达式
前端·javascript·正则表达式
feifeigo12312 天前
Java 正则表达式高级用法
java·mysql·正则表达式
决战软件之巅16 天前
Python 正则表达式
正则表达式
小浪学编程16 天前
C#学习13——正则表达式
学习·正则表达式
yuanyxh17 天前
《精通正则表达式》精华摘要
前端·javascript·正则表达式
red润18 天前
被转义字符麻痹的一天:理解转义字符串
前端·javascript·正则表达式