博客
关于我
Java 正则表达式
阅读量:289 次
发布时间:2019-03-01

本文共 1987 字,大约阅读时间需要 6 分钟。

正则表达式入门与应用

正则表达式(Regular Expression,简称RegEx)是一种强大的工具,用于描述字符串的模式。它可以帮助我们匹配特定的文本、验证数据格式、或提取信息。以下是关于正则表达式在Java中的应用及相关知识的详细解析。

正则表达式的基础

正则表达式语法由多个特殊字符组成,每个字符都有特定的含义:

  • ^:匹配输入字符串的开始位置。
  • $:匹配输入字符串的结尾位置。
  • *** **:前面的字符或子表达式可以出现零次或多次。
  • **+ **:前面的字符或子表达式可以出现一次或多次。
  • **? **:前面的字符或子表达式可以出现零次或一次。
  • {n}:前面的字符或子表达式可以出现恰好n次。
  • {n,}:前面的字符或子表达式可以出现至少n次。
  • []:表示字符集合,匹配其中任意一个字符。
  • ****:用于转义特殊字符,例如\d表示数字字符。

常用的正则表达式

根据不同需求,正则表达式可以用于验证数字、字符、日期、文件名等。以下是一些常见的正则表达式示例:

  • 数字表达式

    • 匹配任意数字:^\d*$
    • 匹配n位数字:^\d{n}$
    • 匹配至少n位数字:^\d{n,}$
  • 字符表达式

    • 匹配汉字:[\u4e00-\u9fa5]
    • 匹配英文和数字:[A-Za-z0-9]+
  • 日期格式

    • 匹配日期:^\d{4}-\d{1,2}-\d{1,2}$
  • 特殊需求表达式

    • 匹配Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)$
    • 匹配域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
  • 正则表达式的应用

  • 字符串匹配

    • 使用String.matches()方法:input.matches(regex)
    • 使用Pattern.matches()方法:Pattern.matches(regex, input)
    • 使用Matcher.matches()方法:创建PatternMatcher对象,调用matches()方法。
  • 部分匹配

    • 使用Matcher.find()方法:尝试查找与模式匹配的输入序列的下一个子序列。
  • 提取组合

    • 使用Matcher.group()方法:提取匹配到的结果,包括整个匹配和各个括号组合。
  • 实际案例

    案例1:文件过滤

    import java.io.File;import java.io.FileFilter;public class test01 {    public static void main(String[] args) {        File file = new File("E:\\011");        File[] files = file.listFiles(new FileFilter() {            @Override            public boolean accept(File pathname) {                return pathname.getName().endsWith(".txt");            }        });        for (File file1 : files) {            System.out.println(file1.getName());        }    }}

    案例2:包含特定字符

    public class test02 {    public static void main(String[] args) {        File file = new File("E:\\011");        File[] files = file.listFiles(new FileFilter() {            @Override            public boolean accept(File pathname) {                return pathname.getName().matches(".*world+.*");            }        });        for (File file1 : files) {            System.out.println(file1.getName());        }    }}

    总结

    正则表达式在Java中的应用是多样的,涵盖了字符串匹配、过滤、数据验证等多个方面。通过合理设计正则表达式,可以有效提升代码的简洁性和灵活性。建议在实际开发中,结合具体需求,选择合适的正则表达式,以确保最佳匹配效果。

    转载地址:http://bxmo.baihongyu.com/

    你可能感兴趣的文章
    Mysql,group by分组查询、order by排序查询、join连接查询、union联合查询
    查看>>
    Mysql,sql文件导入和导出
    查看>>
    MYSQL:int类型升级到bigint,对PHP开发语言影响
    查看>>
    Mysql:mysql 5.X 报错 ERROR 1193 (HY000): Unknown system variable ‘validate_password_length‘
    查看>>
    MySQL:MySQL执行一条SQL查询语句的执行过程
    查看>>
    Mysql:SQL性能分析
    查看>>
    mysql:SQL按时间查询方法总结
    查看>>
    MySQL:什么样的字段适合加索引?什么样的字段不适合加索引
    查看>>
    MySQL:判断逗号分隔的字符串中是否包含某个字符串
    查看>>
    MySQL:某个ip连接mysql失败次数过多,导致ip锁定
    查看>>
    MySQL:索引失效场景总结
    查看>>
    Mysql:避免重复的插入数据方法汇总
    查看>>
    MyS中的IF
    查看>>
    M_Map工具箱简介及地理图形绘制
    查看>>
    m_Orchestrate learning system---二十二、html代码如何变的容易
    查看>>
    M×N 形状 numpy.ndarray 的滑动窗口
    查看>>
    m个苹果放入n个盘子问题
    查看>>
    n = 3 , while n , continue
    查看>>
    n 叉树后序遍历转换为链表问题的深入探讨
    查看>>
    N!
    查看>>