• 正则表达式简介和使用(Java)


    目录

    简介

    正则表达式 – 简介 | 菜鸟教程

    元字符介绍

    字符匹配符

    限定符

    定位符

    选择匹配符

    常用的几个正则表达式

    正则表达式匹配原理

    Java Demo

    ●Pattern类

    ●Matcher类

    匹配汉字、邮政编码、QQ号码和手机号码

    匹配合法的URL


    简介

    正则表达式是 字符串模式匹配 的技术,一般在使用的时候都会写一个 模式串,比如regStr,然后在s串中找和regStr相匹配的串, 比如查找一个html文本中的某些关键字段的值,比如浏览量,点赞量等;或者说判断s串符不符合regStr的格式要求,也就是校验字符串,判定字符串是否合法,比如是不是邮箱,是不是电话号码等。

    正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。

    各个语言中都会有正则表达式的应用,下面会有Java的Demo。

    正则表达式 – 简介 | 菜鸟教程

    元字符介绍

    字符匹配符

    ea8637ac898cdc18cdcfea15edcda2c6.png

    限定符

    主要用来限定字符 (组合) 出现的次数

    注意 [] 和 () 含义是不一样的, ()里面的字符要作为一个整体被使用,[] 是可选的列表。

    定位符

    结尾限定符是针对整个字符串

    选择匹配符

    常用的几个正则表达式

    [a-z] // 匹配所有的小写字母 
    [A-Z] // 匹配所有的大写字母 
    [a-zA-Z] // 匹配所有的字母 
    [0-9] // 匹配所有的数字 

    [\u4e00-\u9fa5] // 匹配中文字符

    [1-9]\d{5} // 邮政编码

    腾讯QQ号:[1-9][0-9]{4,9} (腾讯QQ号从10000开始)

    密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$

    正则表达式匹配原理

    浅谈正则表达式原理 - 知乎

    详解正则表达式匹配算法原理_ybdesire的博客-CSDN博客_正则表达式匹配原理

     

    Java Demo

    java.util.regex包主要包括 Pattern类和Matcher类。

    ●Pattern类

    pattern对象是一个正则表达式对象。Pattern类没有公共构造方法。要创建一个Pattern对
    象,调用其公共静态方法,它返回一个Pattern对象。该方法接受一个正则表达式作为它的第
    一个参数,比如:Pattern pattern = Pattern.compile(regStr);

    ●Matcher类

    Matcher对象是对输入字符串进行解释和匹配的引擎。与Pattern类一样,Matcher也没有
    公共构造方法。你需要调用Pattern对像的matcher方法来获得一个Matcher对像

    匹配汉字、邮政编码、QQ号码和手机号码

    1. public class RegExpDemo {
    2. public static void main(String[] args) {
    3. String content = "一二三四五";
    4. // String content = "";
    5. // 汉字
    6. String reg = "^[\u4e00-\u9fa5]+$"; // 至少有一个汉字字符
    7. Pattern pattern = Pattern.compile(reg);
    8. Matcher matcher = pattern.matcher(content);
    9. if(matcher.find()){
    10. System.out.println("满足格式");
    11. }else{
    12. System.out.println("不满足格式");
    13. }
    14. // 邮政编码格式 注:满足格式不一定就是邮政编码
    15. String regyzCode = "^[1-9]\\d{5}$"; // 1 打头 有6位
    16. // qq 号格式 不能0打头 有长度限制
    17. String regQQCode = "^[1-9]\\d{4,9}$";
    18. //手机号码
    19. String phoneNumber = "17857917309";
    20. String regPhoneCode = "^1[3|4|5|8]\\d{9}$";
    21. pattern = Pattern.compile(regPhoneCode);
    22. matcher = pattern.matcher(phoneNumber);
    23. if(matcher.find()){
    24. System.out.println("满足格式");
    25. }else{
    26. System.out.println("不满足格式");
    27. }
    28. }
    29. }

    匹配合法的URL

    1. public class RegExpDemo {
    2. public static void main(String[] args) {
    3. // String content = "https://www.bilibili.com/video/BV1Eq4y1E79W?p=17&spm_id_from=pageDriver&vd_source=aa9ba225f33182b05cbf71";
    4. String content = "https://blog.csdn.net/dalei9243/article/details/84835895";
    5. // http/https ://
    6. // 只有英文 数字 不允许有 中文字符
    7. // 长度限制 不同浏览器不一样
    8. String reg = "^(http(s)?://)?([\\w-]+\\.)+[\\w-]+(/[\\w-?=&/%.#]*)$";
    9. Pattern pattern = Pattern.compile(reg);
    10. Matcher matcher = pattern.matcher(content);
    11. if(matcher.find()){
    12. System.out.println("满足格式");
    13. }else{
    14. System.out.println("不满足格式");
    15. }
    16. }
    17. }

  • 相关阅读:
    驱动开发:STM32F7控制AD5663模拟量输出
    半导体PVD和CVD设备用质量流量控制器市场现状研究分析
    智能制造工厂刀具使用RFID产线管理系统的重要性
    1.MyBatis初始
    数据解读!智能座舱“升级战”背后,本土供应链加速崛起
    如何保证Redis与数据库的数据一致性
    go学习-基本知识点
    RDD编程_第五章笔记
    推荐系统实战1——什么是推荐系统与常见的推荐系统评价指标
    File类和IO流
  • 原文地址:https://blog.csdn.net/weixin_40757930/article/details/127731386