java正则表达式简介说明

欢喜 Java经验 发布时间:2025-06-05 14:53:52 阅读数:6031 1
下文笔者讲述java中正则表达式的简介说明,如下所示

正则表达式(Regular Expression, 简称 RegEx)简介

在Java代码中,正则表达式
   是一种用于字符串匹配、查找和替换的强大工具
    Java中通过提供`java.util.regex`包来
	  支持正则表达式使用

正则表达式核心类

类名 功能说明
`Pattern` 表示一个编译后的正则表达式模式
(不能直接实例化,通过 `Pattern.compile()` 创建)
`Matcher` 用于对输入字符串进行匹配操作,通过 `Pattern.matcher(input)` 创建
import java.util.regex.*;

public class RegexExample {
    public static void main(String[] args) {
        String text = "Hello, my email is example@example.com";
        String regex = "\\b[\\w.-]+@[\\w.-]+\\.\\w+\\b"; // 匹配邮箱

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println("找到邮箱: " + matcher.group());
        }
    }
}

常用语法符号

1.元字符(特殊含义的字符)
元字符 含义
[\d] 数字 [0-9]
`\D` 非数字 [^0-9]
`\w` 单词字符 [a-zA-Z0-9_]
`\W` 非单词字符
[\s] 空白字符(空格、制表符等)
`\S` 非空白字符
[.] 任意单个字符(除换行符)
2.量词(表示重复次数)
量词 含义
`*` 前一个元素出现 0 次或多次
`+` 前一个元素至少出现 1 次
`?` 前一个元素出现 0 次或 1 次
`{n}` 前一个元素恰好出现 n 次
`{n,}` 前一个元素至少出现 n 次
`{n,m}` 前一个元素出现 n 到 m 次

3.分组与捕获

符号 含义
`(abc)` 分组,将 abc 当作整体
`\1`, [\2] 反向引用第 1、2 组内容
`(?:abc)` 非捕获分组

4.边界匹配符

符号 含义
`^` 开始位置
`$` 结束位置
`\b` 单词边界
`\B` 非单词边界
示例

1.验证手机号码(中国大陆)

^1[3-9]\d{9}$

2.验证邮箱地址

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

3.提取HTML标签中的内容(简单示例)

<(\w+)>(.*?)</\1>

4.替换敏感词为`***`

String filtered = text.replaceAll("傻.*?子", "***");

常用方法汇总

方法 描述
`Pattern.compile(regex)` 编译正则表达式
`matcher.find()` 查找是否有匹配项
`matcher.matches()` 整体是否完全匹配
`matcher.group()` 获取当前匹配的内容
`matcher.group(n)` 获取第 n 个分组的内容
`String.split(regex)` 使用正则分割字符串
`String.replaceAll(regex, replacement)` 替换所有匹配内容

正则表达式注意事项

 -正则表达式是区分大小写的,
如需忽略大小写可使用 `Pattern.CASE_INSENSITIVE`标志 -多次使用的正则建议缓存 Pattern 对象,
避免重复编译 -正则性能问题:复杂的正则可能导致回溯爆炸(backtracking),
应尽量优化表达式结构
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202506/17491075738483.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者