游乐游手机版
首页/编程语言/文章详情

Notepad++正则表达式匹配使用方法详解

时间:2026-05-07 13:12
Notepad++ 使用正则表达式匹配 想打开查找功能?很简单,按下ctrl+F这个快捷键,查找对话框就弹出来了。 接下来,记得选中底部的“正则表达式”选项,就能开启你的模式匹配之旅了。 一、常见匹配 1、正则表达式匹配以某字符开头的这一行数据 表达式:(?:^| n)字符位置 * 示例:(?:^|

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>”

来源:https://www.jb51.net/article/281025.htm
上一篇正则表达式数字匹配方法 下一篇VSCode正则表达式常用操作指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
PyTorch中使用多维索引张量对高维张量批量索引的正确方法
编程语言 · 2026-07-03

PyTorch中使用多维索引张量对高维张量批量索引的正确方法

本文深入讲解如何在 PyTorch 中利用形状为 [b, k] 的索引张量 B,对形状为 [b, m, n] 的高维张量 A 执行高效批量索引,最终得到 [b, k, n] 的输出。核心思路在于合理扩展索引维度并配合 torch gather 实现精准的逐行抽取。 很多人处理高维张量的批量索引时都会

Go中...操作符解包切片传递可变参数函数
编程语言 · 2026-07-03

Go中...操作符解包切片传递可变参数函数

在 Go 语言中,` ` 运算符放在切片变量后面(如 `slice `)的作用是将该切片“展开”为多个独立参数,专门用于调用那些接受可变参数(` T`)的函数,例如 `append` 或 `fmt Println`。这是一种类型安全的语法糖,并非省略号或通配符,能够帮助开发者更简洁地处理

macOS与WSL2下PHP多版本切换失效问题排查与修复指南
编程语言 · 2026-07-03

macOS与WSL2下PHP多版本切换失效问题排查与修复指南

本文深入分析在 macOS 或 WSL2(Ubuntu)开发环境中,通过 Homebrew 管理 PHP 多版本时,php -v 始终显示旧版本(如 php@5 6)的深层原因,并给出系统性解决方案,覆盖 PATH 冲突、符号链接逻辑、Shell 初始化配置、系统残留配置等关键环节。 遇到这种情况的

PHP JSON解析深层嵌套对象属性访问失败的解决方法
编程语言 · 2026-07-03

PHP JSON解析深层嵌套对象属性访问失败的解决方法

使用 json_decode() 解析 API 返回的 JSON 数据时,经常遇到某个子属性无法正常获取,始终返回 NULL —— 这是许多 PHP 开发者都曾碰到过的棘手问题。通常并非数据丢失,而是对象嵌套层级比预期更深,导致访问路径不正确。 举例来说,你看到返回的 JSON 里有一个 appea

nnU-Net v2预处理卡死问题的成因分析与实用解决指南
编程语言 · 2026-07-03

nnU-Net v2预处理卡死问题的成因分析与实用解决指南

> 使用 nnUNetv2_plan_and_preprocess 处理大规模数据集(例如 704 例样本)时,程序常因多进程加载导致死锁而停滞。核心原因在于默认并发数过高引发资源竞争或 I O 阻塞,适当降低并发数即可稳定完成全量预处理。 你在使用 `nnunetv2_plan_and_prepr