行业资讯 2025年08月6日
0 收藏 0 点赞 420 浏览 3400 个字
摘要 :

文章目录 Pattern类 Matcher类 在Java中使用正则表达式示例 附录 在Java语言中,正则表达式(Regex或Regular Expression)是用于操作、搜索和编辑字符串的应用程序编程……




在Java语言中,正则表达式(Regex或Regular Expression)是用于操作、搜索和编辑字符串的应用程序编程接口(API)。您可以通过在代码中导入java.util.regex API包来在Java中使用正则表达式。

java.util.regex包下有以下三个类:

  1. regex.Pattern:这个类有助于定义模式。
  2. regex.Matcher:这个类有助于使用模式在输入字符串上执行匹配操作。
  3. PatternSyntaxException:这个类通过指示正则表达式模式中的语法错误来帮助用户。

util.regex.Pattern类 这个类(util.regex.Pattern)是正则表达式的编译版本,可以通过compile()方法调用。compile()方法接受正则表达式作为第一个参数。这个类不提供任何公共构造函数。

Pattern类

Pattern类中有各种不同的函数,用于处理正则表达式。

方法名 描述
static Pattern compile(String regex) 用于将给定的正则表达式编译成一个模式。
Matcher Matcher (CharSequence input) 用于创建一个用于匹配给定字符串的匹配器,该字符串由用户输入。
String toString() 该方法返回字符串的表示形式。
String[] split(CharSequence input) 该方法基于匹配将字符串拆分。
static Boolean matches(String regex, CharSequence input) 该方法将正则表达式与给定的输入字符串进行匹配。

util.regex.Matcher类 这个类用于通过在任何对象或Pattern上调用matcher()函数,在输入字符串上执行匹配操作。这个类不定义任何公共构造函数。

Matcher类

Matcher类中有各种不同的函数,用于处理正则表达式的匹配操作:

方法名 描述
boolean matches() 此方法检查正则表达式是否与模式匹配。
boolean find() 此方法在字符串中搜索正则表达式的出现。
boolean find(int start) 此方法从指定的起始索引开始在字符串中搜索正则表达式的出现。
String group() 此方法有助于查找匹配的子序列。
int start() 此方法有助于返回匹配子序列的起始索引。
int end() 此方法有助于返回匹配子序列的结束索引。
int groupCount() 此方法有助于返回匹配子序列的总数。

在Java中使用正则表达式示例

示例1:此示例演示了在Java代码中使用点运算符的方法。

import java.util.regex.*;

class reg {
    public static void main(String args[]) {
        System.out.println(Pattern.matches(\".r.\", \"arp\")); // 此语句显示布尔值 True,因为第二个字符在字符串和正则表达式中都是 r。
        System.out.println(Pattern.matches(\".bm\", \"abc\")); // 此语句显示布尔值 False,因为字符串和正则表达式的第三个字符不同。
        System.out.println(Pattern.matches(\"..m\", \"msm\")); // 此语句显示布尔值 True,因为字符串和正则表达式的第三个字符都是 m。
        System.out.println(Pattern.matches(\"a..s\", \"amns\")); // 此语句显示布尔值 True,因为字符串的第一个字符和最后一个字符与正则表达式匹配。
        System.out.println(Pattern.matches(\".s.\", \"mas\")); // 此语句显示布尔值 False,因为字符串和正则表达式的第二个字符不同。
    }
}

示例2:以下示例使用正则表达式的不同字符。

import java.util.regex.*;

class Reg1 {
    public static void main(String args[]) {
        System.out.println(\" 1. \");
        System.out.println(
            Pattern.matches(\"^[ a-z]om\", \"Tom\")); // 此语句返回 False,因为字符串以大写字母开头,与正则表达式不匹配。

        System.out.println(\" 2. \");
        System.out.println(
            Pattern.matches(\"[Rpq]om\", \"Tom\")); // 此语句返回 False,因为字符串以 \'T\' 开头,与正则表达式中的 R、P 或 Q 中的任何字符不匹配。

        System.out.println(\" 3. \");
        System.out.println(
            Pattern.matches(\"[Tt]om\", \"Tom\")); // 此语句返回 True,因为字符串以 \'T\' 开头,与正则表达式中的字符 \'T\' 匹配。

        System.out.println(\" 4. \");
        System.out.println(
            Pattern.matches(\"Cat|Rat\", \"Rat\")); // 此语句返回 True,因为字符串与正则表达式的第二部分匹配。

        System.out.println(\" 5. \");
        System.out.println(
            Pattern.matches(\"[CM]at|[Bb]ad\", \"Bad\")); // 此语句返回 True,因为字符串与正则表达式的第二部分匹配。

        System.out.println(\" 6. \");
        System.out.println(
            Pattern.matches(\".*bit.*\", \"rabbit\")); // 此语句返回 True,因为字符串包含 \"bit\",与正则表达式匹配。

        System.out.println(\" 7. \");
        System.out.println(
            Pattern.matches(\"^[\\\\d].*\", \"abc\")); // 此语句返回 True,因为字符串以字母开头,与正则表达式不匹配数字。

        System.out.println(\" 8. \");
        System.out.println(
            Pattern.matches(\"^[^\\\\d].*\", \"abc123\")); // 此语句返回 True,因为字符串以字母开头,与正则表达式由于数字的否定匹配。

        System.out.println(\" 9. \");
        System.out.println(
            Pattern.matches(\"[a-zA-Z][a-zA-Z][0-9A-Z]\", \"aPz\")); // 此语句返回 False,因为字符串的最后一个字符 \'z\' 与正则表达式中的 \'0-9A-Z\' 不匹配。

        System.out.println(\" 10. \");
        System.out.println(
            Pattern.matches(\"[a-zA-Z][a-zA-Z][a-zA-Z]\", \"aAA\")); // 此语句返回 True,因为字符串中的所有字符与正则表达式匹配。

        System.out.println(\" 11. \");
        System.out.println(
            Pattern.matches(\"java[tT]poin[tT]$\", \"javaTpoint\")); // 此语句返回 True,因为字符串以 \'t\' 结尾,与正则表达式匹配。

        System.out.println(\" 12. \");
        System.out.println(
            Pattern.matches(\"\\\\D*\", \"abcde\")); // 此语句返回 True,因为字符串不包含任何数字,所以与正则表达式匹配。

        System.out.println(\" 13. \");
        System.out.println(
            Pattern.matches(\"\\\\D*\", \"abcde123\")); // 此语句返回 False,因为字符串包含数字,不符合正则表达式。
    }
}

附录

Java常用正则表达式大全

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9405.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号