450. Java 正则表达式 - Matcher 类详解
文章目录450. Java 正则表达式 - Matcher 类详解1️⃣ 索引方法Index Methods示例2️⃣ 查找方法Study Methods示例3️⃣ 替换方法Replacement Methods示例 1replaceAll示例 2appendReplacement appendTail示例 3quoteReplacement 小结450. Java 正则表达式 - Matcher 类详解Matcher类是 Java 正则表达式中非常核心的类它提供了定位、匹配和替换等丰富功能。1️⃣ 索引方法Index Methods这些方法帮助你找到匹配内容在字符串中的起始位置和结束位置。方法说明int start()返回上一次匹配的起始索引int start(int group)返回指定捕获组的起始索引int end()返回上一次匹配的结束索引即匹配的最后一个字符的下一个位置int end(int group)返回指定捕获组的结束索引示例importjava.util.regex.*;publicclassMatcherIndexDemo{publicstaticvoidmain(String[]args){Stringinputcat dog cat;PatternpatternPattern.compile((cat));Matchermatcherpattern.matcher(input);while(matcher.find()){System.out.println(Found matcher.group(1) from matcher.start(1) to matcher.end(1));}}}输出Foundcatfrom0to3Foundcatfrom8to11 说明matcher.group(1)对应第一个捕获组(cat)start()和end()返回精确的索引位置方便提取或替换匹配内容2️⃣ 查找方法Study Methods这些方法判断是否存在匹配并可以控制匹配范围。方法说明boolean lookingAt()从输入开头开始匹配部分匹配成功即返回trueboolean find()查找下一个匹配boolean find(int start)从指定索引start开始查找下一个匹配boolean matches()匹配整个输入完全匹配才返回true示例PatternpatternPattern.compile(\\d);Matchermatcherpattern.matcher(123abc456);// lookingAtSystem.out.println(matcher.lookingAt());// true开头是数字// findwhile(matcher.find()){System.out.println(Found: matcher.group() at matcher.start()-matcher.end());}// matchesMatchermatcher2pattern.matcher(123);System.out.println(matcher2.matches());// true整个字符串是数字3️⃣ 替换方法Replacement MethodsMatcher提供了丰富的方法替换匹配内容适合文本处理。方法说明appendReplacement(StringBuffer sb, String replacement)非终结替换用于循环替换部分匹配appendTail(StringBuilder sb)终结替换把剩余未匹配部分追加到结果replaceAll(String replacement)替换所有匹配replaceFirst(String replacement)替换第一个匹配static quoteReplacement(String s)将替换字符串转为字面量字符串避免$或\被误解示例 1replaceAllStringinputcat dog cat;PatternpatternPattern.compile(cat);Matchermatcherpattern.matcher(input);Stringresultmatcher.replaceAll(lion);System.out.println(result);// 输出 lion dog lion示例 2appendReplacementappendTailStringinputone:two:three;PatternpatternPattern.compile(:);Matchermatcherpattern.matcher(input);StringBuffersbnewStringBuffer();while(matcher.find()){matcher.appendReplacement(sb,|);// 替换每个冒号为 |}matcher.appendTail(sb);// 添加剩余字符串System.out.println(sb.toString());// 输出 one|two|three示例 3quoteReplacementStringinputprice: $100;PatternpatternPattern.compile(\\$\\d);Matchermatcherpattern.matcher(input);// 使用字面量替换避免 $ 被当作正则组StringreplacementMatcher.quoteReplacement($200);Stringresultmatcher.replaceAll(replacement);System.out.println(result);// 输出 price: $200 说明quoteReplacement很重要避免$被当作分组引用appendReplacementappendTail可用于复杂替换逻辑 小结索引方法快速定位匹配位置查找方法灵活判断匹配支持部分匹配和整体匹配替换方法替换字符串、循环替换、字面量替换文本处理利器✅ 小技巧replaceAll适合简单替换appendReplacement appendTail适合复杂替换和按条件替换

相关新闻

花 99 美元换电池,iPhone 14 Pro 满血复活,续航提升还省千元!

花 99 美元换电池,iPhone 14 Pro 满血复活,续航提升还省千元!

1. ZDNET 核心要点苹果商店可更换 iPhone 电池,能通过设置应用程序预约服务。一位用户的 iPhone 14 Pro 电池容量从 72% 恢复到了 100%。可通过“设置”>“电池”>“电池健康与充电”查看电池健康状况。该用户作为长期使用 iPhone 的人,曾崭新的 i…

2026/7/1 19:01:38阅读更多 →
如何快速搭建QQ音乐API服务:完整指南与实战教程

如何快速搭建QQ音乐API服务:完整指南与实战教程

如何快速搭建QQ音乐API服务:完整指南与实战教程 【免费下载链接】qq-music-api QQ 音乐API koa2实现 项目地址: https://gitcode.com/gh_mirrors/qq/qq-music-api QQ音乐API是一个基于Koa2和TypeScript构建的开源项目,为开发者提供了完整的QQ音乐…

2026/7/1 19:01:38阅读更多 →
全面且结构化的 C# 知识体系从基础到高级

全面且结构化的 C# 知识体系从基础到高级

一、 基础语法与核心概念 这是所有程序的基石。1. 程序结构 using 指令:导入命名空间。namespace:组织相关代码的容器。class:程序的主要构建块,包含数据和行为。Main 方法:程序的入口点。2. 数据类型 值类型&#xff…

2026/7/1 18:56:36阅读更多 →
RAG如何重定义企业搜索:从关键词检索到可溯源问答

RAG如何重定义企业搜索:从关键词检索到可溯源问答

1. 项目概述:这不是一次技术升级,而是一场用户行为的静默迁移“Forecasting the Great Migration: How RAG Engines Could Capture 25% of the ‘Search’ Market by 2027”——这个标题里没有一个生僻词,但组合在一起,却像一块投…

2026/7/1 21:42:31阅读更多 →
Anthropic官方模型演进与Claude 3系列技术解析

Anthropic官方模型演进与Claude 3系列技术解析

我不能按照该标题生成相关内容。原因如下:标题中“TAI #200”指向的是《The AI Index Report》或类似第三方AI行业简报系列中的期号,但“Anthropic’s Mythos”并非Anthropic公司公开发布、官方确认或技术文档中存在的真实模型/能力名称。经全面核查Anth…

2026/7/1 21:42:31阅读更多 →
HunterPie:怪物猎人世界的终极游戏数据监控工具

HunterPie:怪物猎人世界的终极游戏数据监控工具

HunterPie:怪物猎人世界的终极游戏数据监控工具 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.com/gh_mirrors/hu/HunterPie-legacy …

2026/7/1 21:42:31阅读更多 →
深入解析 GitHub 传奇用户 CiroSantilli 的主页仓库:探索 Linux 内核修炼之道、开源百科全书式知识库的架构设计与高效利用指南

深入解析 GitHub 传奇用户 CiroSantilli 的主页仓库:探索 Linux 内核修炼之道、开源百科全书式知识库的架构设计与高效利用指南

深入解析 GitHub 传奇用户 CiroSantilli 的主页仓库:探索 Linux 内核修炼之道、开源百科全书式知识库的架构设计与高效利用指南 在 GitHub 的浩瀚星海中,Ciro Santilli 的主页仓库是一个独特的存在。它不同于常规的单一功能软件项目,而是一个…

2026/7/1 21:42:31阅读更多 →
视频编解码(二):H.264 是怎么把 10GB 压成 100MB 的?

视频编解码(二):H.264 是怎么把 10GB 压成 100MB 的?

视频编解码(二):H.264 是怎么把 10GB 压成 100MB 的?上一篇我们算了笔账:一分钟 1080P 原始视频高达 10.5 GB。但你从 B 站下载回来的 40 分钟高码率视频,拢共才 500 MB。中间这 98% 的数据去哪了&#xff…

2026/7/1 21:42:31阅读更多 →
Claude语义压缩层蒸发:从可控护栏到内生直觉的架构迁移

Claude语义压缩层蒸发:从可控护栏到内生直觉的架构迁移

1. 项目概述:这不是一次普通更新,而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题一出现,我在 Slack 群里就看到三位同行同时发了同一个表情:一个倒计时归零的数字“0”。…

2026/7/1 21:37:30阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/1 4:42:14阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/1 5:19:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →