Notepad++正则表达式匹配使用方法详解
Notepad++ 使用正则表达式匹配
想打开查找功能?很简单,按下ctrl+F这个快捷键,查找对话框就弹出来了。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
接下来,记得选中底部的“正则表达式”选项,就能开启你的模式匹配之旅了。
一、常见匹配
1、正则表达式匹配以某字符开头的这一行数据
表达式:(?:^|\n)字符位置.* 示例:(?:^|\n)prompt.* 作用:这个表达式能精准匹配以“prompt”这个词开头的整行字符串。
2、正则表达式匹配以a字符串开头,b字符串结尾的字符,中间不管
表达式:a字符串位置(.+?)b字符串位置 注意:很多字符在正则里有特殊含义,记得用反斜杠“\”来转义。 示例:要匹配以“to_date”开头,以“), ”结尾的字符串,可以这么写:to_date(.+?)\), 解读:这里的“(.+?)”负责匹配中间的所有内容,结尾部分“)\), ”中的右括号进行了转义。 补充:上述规则特指以“括号+逗号”作为结尾的情况。
3、只匹配纯数字的字符串
表达式:^[0-9]+$ 解释: ^:表示匹配行首。 [0-9]+:表示匹配一个或连续多个数字。 $:表示匹配行尾。 合起来看,它的目标就是匹配一整行,而且这一行里除了数字,不能有任何其他字符。 示例:可以用它来筛选出文档中那些完完整整、不含任何标点或字母的纯数字行。
4、只匹配纯字母的字符串
表达式:^[A-Za-z]+$ 解释: ^:匹配行首。 [A-Za-z]+:匹配一个或连续多个大小写字母。 $:匹配行尾。 总之一句话,它要抓取的就是整行都由字母构成的字符串。 示例:帮你快速定位文档里那些全是字母、干干净净的行。
5、同时查找多个字符串
表达式:a|b 示例:张三|李四|王五 解读:这个管道符“|”就像逻辑上的“或”。用这个表达式,可以一次性在文中找出所有包含“张三”、“李四”或“王五”中任意一个名字的行,效率非常高。
二、正则表达式(.+)和(.+?)的区别
1、符号释义
① () 分组符。它的作用是把括号里的所有字符捆绑在一起,当作一个整体来处理。
② . 通配符。除了换行符,它能匹配任意单个字符。
③ + 量词。要求紧挨着它的前一个字符必须至少出现一次,可以出现更多次。
④ ? 这个符号有两种角色:如果跟在某个字符或子串后面,表示匹配前一项0次或1次,即可有可无;但如果跟在.、+、?这类量词后面,它就切换到了“非贪婪模式”,也可以叫“惰性模式”。
2、贪婪/非贪婪模式
这里有个关键点:正则表达式默认是“贪婪”的。
1. 贪婪模式
顾名思义,它会尽可能多地匹配字符。怎么个贪法呢?它会先尝试匹配整个字符串,如果不行,就“吐掉”最后一个字符再试,如此反复后退,直到找到一个匹配为止,目标是拿到最长的可能结果。
2. 非贪婪模式
与贪婪相反,它尽可能少地匹配字符。它是怎么“懒”的呢?它会从左边第一个字符开始,先匹配一点点看看成不成功,如果不成功,就再多“吃”进右边一个字符再试,如此反复前进,直到匹配成功,目标是拿到最短的可能结果。
3、实例
假设我们有一个字符串:“<1><123>”
① 使用正则表达式 <(.+)>(贪婪模式)
它会试图匹配最长的、被<>包裹的字符串。结果呢?它直接把从第一个<到最后一个>之间的全部内容1><123都匹配进去了,最终返回整个“<1><123>”。
② 使用正则表达式 <(.+?)>(非贪婪模式)
这次它学“懒”了,只要找到最短的、符合条件的就停手。所以它匹配到第一个>就结束了,返回的结果是“<1>”。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Ubuntu系统下使用Go语言实现机器学习的实践指南
在Ubuntu上使用Go进行机器学习需先安装环境并配置工作空间,通过goget获取golearn等库。编写代码遵循数据加载、模型训练、预测评估的流程后运行程序。Go在性能与并发方面有优势,但生态不如Python丰富,更适合特定工程场景或统一技术栈的团队探索。
Ubuntu系统下Go语言程序打包方法与核心要点
在Ubuntu中打包Go应用需关注环境配置、交叉编译与优化。通过GoModules管理依赖,使用CGO_ENABLED=0生成静态二进制文件以实现跨平台兼容。利用UPX和链接器参数减小体积,采用Docker多阶段构建制作最小镜像。交付时建议包含平台信息并签名,注意解决动态库依赖和版本锁定等常见问题。
Android开发中高效管理多个CheckBox组件的实用技巧
在Android应用开发过程中,高效管理多个功能相似的复选框(CheckBox)是提升开发效率的关键。无论是应用设置界面、多选列表,还是动态生成的选项列表,如果对每个CheckBox都进行单独引用和操作,代码会迅速变得冗长且难以维护。那么,是否存在更优雅的解决方案?答案是肯定的——通过数组或动态集合
面向对象编程中封装字段如何提升代码安全性与维护性
将类的公共字段改为私有,并提供公共的获取和设置方法,是提升代码安全性与可控性的基础重构。此举能防止外部随意读写,避免状态失控,并便于后续加入校验、脱敏等控制逻辑,适用于核心业务或敏感字段。
Master-Worker架构解析如何实现并发任务的负载均衡与结果高效合并
Master-Worker架构的核心在于实现任务划分、动态负载均衡与可靠结果合并的协同:任务必须具备无依赖性与可聚合性,负载需依据节点实时能力进行动态分配,结果合并则需通过唯一ID、版本号及超时重试机制确保不丢失、保顺序、容故障。 构建一个高性能的Master-Worker并发架构,核心在于系统性地
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

