445. Java 正则表达式 - 边界匹配器
文章目录445. Java 正则表达式 - 边界匹配器 常见的边界匹配符 举例说明1. ^ 和 $匹配行首和行尾2. \b单词边界3. \B非单词边界4. \G上一个匹配的结束位置 实际应用场景 总结445. Java 正则表达式 - 边界匹配器在前面我们主要关心的是某个字符串中有没有匹配成功。但是有时候我们还想知道 它是不是出现在行首 是不是在单词的结尾 或者是不是紧跟在上一次匹配的后面这些都可以通过边界匹配器Boundary Matchers来精确控制。 常见的边界匹配符边界构造符描述^一行的开始$一行的结束\b单词边界word boundary\B非单词边界\A输入的开始整个文本不受多行模式影响\G上一个匹配的结束位置\Z输入的结束忽略最后的换行符\z输入的真正结束包含换行符 举例说明1.^和$匹配行首和行尾Pattern p Pattern.compile(^dog$); Matcher m p.matcher(dog);✅ 输出匹配成功因为整个字符串就是dog。但如果前面多了空格呢Pattern p Pattern.compile(^dog$); Matcher m p.matcher( dog);❌ 不匹配因为前面多了空格^要求必须是行首。那我们允许空格呢Pattern p Pattern.compile(^\\s*dog$); Matcher m p.matcher( dog);✅ 匹配成功\s*表示前面可以有任意多个空格。2.\b单词边界单词边界的意思是匹配的单词必须是完整的而不是单词中的一部分。Pattern p Pattern.compile(\\bdog\\b); Matcher m p.matcher(The dog plays in the yard.);✅ 匹配成功因为dog独立存在。Pattern p Pattern.compile(\\bdog\\b); Matcher m p.matcher(The doggie plays in the yard.);❌ 不匹配因为dog是doggie的一部分不是完整单词。3.\B非单词边界和\b相反要求匹配的部分不能在单词的边界上。Pattern p Pattern.compile(\\bdog\\B); Matcher m p.matcher(The doggie plays in the yard.);✅ 匹配成功这里dog出现在doggie的开头不是独立的单词。Pattern p Pattern.compile(\\bdog\\B); Matcher m p.matcher(The dog plays in the yard.);❌ 不匹配因为dog是一个完整单词。4.\G上一个匹配的结束位置\G可以用来连续匹配要求新匹配必须紧跟上一个。Pattern p1 Pattern.compile(dog); Matcher m1 p1.matcher(dog dog);✅ 会找到两个结果dog0-3 和dog4-7。但如果我们用\GPattern p2 Pattern.compile(\\Gdog); Matcher m2 p2.matcher(dog dog);✅ 只找到第一个因为第二个dog并不是紧挨着第一个结果。这种情况常用于逐步扫描比如日志分析。 实际应用场景行首/行尾校验验证输入是不是只包含某个单词^yes$。检查某一行是不是以分号结尾;$。单词搜索搜索文档中独立出现的 “cat”\bcat\b避免误匹配 “catalog”。分词使用\b可以方便地识别单词边界用于英文分词。连续匹配\G常用于循环提取数据比如 CSV 或者日志中的字段。 总结^和$→ 行的开头和结尾\b和\B→ 单词边界与非边界\A/\Z/\z→ 输入整体的开始与结束\G→ 上一个匹配的结束位置边界匹配器让我们能更精确地控制匹配位置而不仅仅是“有没有匹配”。

相关新闻

Type-C PD取电方案设计与工程实践

Type-C PD取电方案设计与工程实践

1. 项目概述:Type-C取电的实用价值最近在折腾一个户外移动设备项目时,发现Type-C接口取电真是个宝藏方案。相比传统的Micro USB,Type-C不仅正反插都行,还能支持更大功率的电力传输。现在从手机充电宝到笔记本电脑充电器&#xff0…

2026/6/26 22:53:43阅读更多 →
205-协程与 Flow 入门

205-协程与 Flow 入门

05 协程与 Flow 入门 这一章解决“理解协程到底是什么、和线程什么关系,能写出基本的后台加载 + 切主线程,并理解 Flow 冷流”。这里只做入门,深挖(调度细节、异常传播、背压、测试)放在第 08 模块 threading-and-coroutines。 1. 协程和线程的关系 先建立最重要的直觉…

2026/6/26 22:53:43阅读更多 →
Python操作PDF附件添加查看与管理指南

Python操作PDF附件添加查看与管理指南

在日常文档处理工作中,PDF 附件功能有着广泛的应用场景。例如,将合同原文与相关证明材料打包在同一个 PDF 文件中,或在技术文档中附上对应的数据文件和图片。手动操作虽然可行,但当需要批量处理大量文档时,效率就会成为…

2026/6/26 22:53:43阅读更多 →
企业级Pig系统安全加固实战:XSS立体防御与端到端数据加密

企业级Pig系统安全加固实战:XSS立体防御与端到端数据加密

1. 项目概述:为什么Pig系统的安全防护值得你投入精力?如果你正在负责一个基于Pig框架(这里指代一个常见的、用于快速构建后台管理系统的开源脚手架,而非Apache Pig大数据处理平台)开发的企业级应用,那么“安…

2026/6/27 0:09:04阅读更多 →
自动化工作流安全:从权限模型到供应链污染的纵深防御实践

自动化工作流安全:从权限模型到供应链污染的纵深防御实践

1. 项目概述:当自动化成为攻击者的“高速公路”最近在复盘一些内部安全审计案例时,一个代号为“Ni8mare”的自动化工作流平台漏洞利用链引起了我的注意。这并非一个单一的CVE编号,而是一系列由配置缺陷、逻辑漏洞和供应链风险交织而成的攻击路…

2026/6/27 0:09:04阅读更多 →
终极指南:5分钟掌握SketchUp STL插件,实现3D模型无缝转换

终极指南:5分钟掌握SketchUp STL插件,实现3D模型无缝转换

终极指南:5分钟掌握SketchUp STL插件,实现3D模型无缝转换 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl …

2026/6/27 0:09:04阅读更多 →
Linux 内核网络栈调优:从 TCP 拥塞控制到连接池瓶颈的深度优化

Linux 内核网络栈调优:从 TCP 拥塞控制到连接池瓶颈的深度优化

Linux 内核网络栈调优:从 TCP 拥塞控制到连接池瓶颈的深度优化一、高并发下的网络栈瓶颈:当带宽充足但吞吐量上不去 生产环境中经常遇到这样的场景:服务器带宽 10Gbps,CPU 和内存充裕,但实际吞吐量只有 2-3Gbps。应用层…

2026/6/27 0:09:04阅读更多 →
Tiled地图编辑器:解决游戏开发中地图制作难题的专业解决方案

Tiled地图编辑器:解决游戏开发中地图制作难题的专业解决方案

Tiled地图编辑器:解决游戏开发中地图制作难题的专业解决方案 【免费下载链接】tiled Flexible level editor 项目地址: https://gitcode.com/gh_mirrors/ti/tiled 你是否曾为游戏开发中的地图制作而烦恼?面对复杂的关卡设计、繁琐的资源管理和不兼…

2026/6/27 0:09:04阅读更多 →
Vue KeepAlive 原理深度解析:从使用到底层实现

Vue KeepAlive 原理深度解析:从使用到底层实现

目录 一、什么是 KeepAlive? 二、KeepAlive 的核心数据结构 三、KeepAlive 的工作原理(三步走) 第 1 步:挂载时(首次渲染)——“存” 第 2 步:切换离开时(失活)——“…

2026/6/27 0:04:03阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/26 11:03:22阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/26 4:15:25阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/26 9:29:01阅读更多 →
10分钟AI语音克隆与实时变声:Retrieval-based-Voice-Conversion-WebUI完整指南

10分钟AI语音克隆与实时变声:Retrieval-based-Voice-Conversion-WebUI完整指南

10分钟AI语音克隆与实时变声&#xff1a;Retrieval-based-Voice-Conversion-WebUI完整指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrie…

2026/6/27 0:04:03阅读更多 →
Layerdivider:3分钟AI智能分层,彻底告别手动抠图时代

Layerdivider:3分钟AI智能分层,彻底告别手动抠图时代

Layerdivider&#xff1a;3分钟AI智能分层&#xff0c;彻底告别手动抠图时代 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 还在为复杂的图像分层工作烦…

2026/6/27 0:04:03阅读更多 →
Tomcat中X-Frame-Options配置实战:防御点击劫持的四种方法与最佳实践

Tomcat中X-Frame-Options配置实战:防御点击劫持的四种方法与最佳实践

1. 项目概述&#xff1a;为什么X-Frame-Options是Web安全的“防盗门”&#xff1f;最近在排查一个老项目的安全审计报告时&#xff0c;又被提到了“点击劫持”风险&#xff0c;矛头直指缺失的X-Frame-Options响应头。这已经不是第一次了&#xff0c;很多开发团队&#xff0c;尤…

2026/6/27 0:04:03阅读更多 →