商城首页欢迎来到中国正版软件门户

您的位置:首页 >Notepad++使用正则表达式匹配的方法

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

  发布于2026-05-03 阅读(0)

扫一扫,手机访问

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 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注