一、引言

正则表达式是处理字符串的强大工具。在 Java 中,它们定义了字符串模式,可用于搜索、编辑或处理文本。本文将探讨 Java 正则表达式的基本原理、语法和一些常用的正则表达式。

二、Java 正则表达式核心

  1. Pattern 类:正则表达式的编译表示。通过调用其公共静态编译方法来创建 Pattern 对象​​。
  2. Matcher 类:用于对输入字符串进行解释和匹配操作的引擎。通过 Pattern 对象获取 Matcher 对象​​。
  3. PatternSyntaxException:表示正则表达式模式中的语法错误​​。
  4. 元字符:如 | (或),. (任意字符),^ (开始),$ (结束),\d (数字),\s (空白字符),\b (单词边界),\uxxxx (Unicode 字符)​​。
  5. 量词:如 n+ (至少一个n),n* (零个或多个n),n? (零个或一个n),n{x} (x个n),n{x,y} (x到y个n),n{x,} (至少x个n)​​。

三、基本语法

  • ****:标记特殊字符,如 \n(换行符)​​。
  • ^:匹配输入字符串的开始位置​​。
  • $:匹配输入字符串的结束位置​​。
  • *:零次或多次匹配前面的字符或子表达式​​。
  • +:一次或多次匹配前面的字符或子表达式​​。
  • ?:零次或一次匹配前面的字符或子表达式​​。
  • {n}:匹配前面字符恰好 n 次​​。
  • {n,}:匹配前面字符至少 n 次​​。
  • {n,m}:匹配前面字符至少 n 次,但不超过 m 次​​。
  • .:匹配除换行符之外的任何单个字符​​。
  • (pattern):匹配 pattern 并捕获匹配的子表达式​​。
  • (?:pattern):匹配 pattern 但不捕获匹配的子表达式​​。
  • (?=pattern):正向预测先行搜索的子表达式​​。
  • x|y:匹配 x 或 y​​。
  • [xyz]:字符集,匹配所包含的任一字符​​。
  • [^xyz]:反向字符集,匹配未包含的任何字符​​。
  • [a-z]:匹配指定范围内的任何字符​​。
  • \b\B:分别匹配字边界和非字边界​​​​。
  • \d\D:分别匹配数字和非数字字符​​​​。
  • \s\S:分别匹配空白和非空白字符​​​​。
  • \w\W:分别匹配单词字符和非单词

四、常用正则表达式

  1. 校验数字
    • 全数字:^[0-9]*$
    • n位数字:^\d{n}$
    • 至少n位数字:^\d{n,}$​。
  2. 校验字符
    • 汉字:^[\u4e00-\u9fa5]{0,}$
    • 英文和数字:^[A-Za-z0-9]+$​。
  3. 特殊格式
    • Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
    • 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$​。

五、使用示例

输出结果为 true,表明字符串中包含 ‘runoob’​​。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注