您的位置:首页 >Notepad++使用正则表达式匹配的方法
发布于2026-05-03 阅读(0)
扫一扫,手机访问
想打开查找功能?很简单,按下ctrl+F这个快捷键,查找对话框就弹出来了。
接下来,记得选中底部的“正则表达式”选项,就能开启你的模式匹配之旅了。
表达式:(?:^|\n)字符位置.* 示例:(?:^|\n)prompt.* 作用:这个表达式能精准匹配以“prompt”这个词开头的整行字符串。
表达式:a字符串位置(.+?)b字符串位置 注意:很多字符在正则里有特殊含义,记得用反斜杠“\”来转义。 示例:要匹配以“to_date”开头,以“), ”结尾的字符串,可以这么写:to_date(.+?)\), 解读:这里的“(.+?)”负责匹配中间的所有内容,结尾部分“)\), ”中的右括号进行了转义。 补充:上述规则特指以“括号+逗号”作为结尾的情况。
表达式:^[0-9]+$ 解释: ^:表示匹配行首。 [0-9]+:表示匹配一个或连续多个数字。 $:表示匹配行尾。 合起来看,它的目标就是匹配一整行,而且这一行里除了数字,不能有任何其他字符。 示例:可以用它来筛选出文档中那些完完整整、不含任何标点或字母的纯数字行。
表达式:^[A-Za-z]+$ 解释: ^:匹配行首。 [A-Za-z]+:匹配一个或连续多个大小写字母。 $:匹配行尾。 总之一句话,它要抓取的就是整行都由字母构成的字符串。 示例:帮你快速定位文档里那些全是字母、干干净净的行。
表达式:a|b 示例:张三|李四|王五 解读:这个管道符“|”就像逻辑上的“或”。用这个表达式,可以一次性在文中找出所有包含“张三”、“李四”或“王五”中任意一个名字的行,效率非常高。
① () 分组符。它的作用是把括号里的所有字符捆绑在一起,当作一个整体来处理。
② . 通配符。除了换行符,它能匹配任意单个字符。
③ + 量词。要求紧挨着它的前一个字符必须至少出现一次,可以出现更多次。
④ ? 这个符号有两种角色:如果跟在某个字符或子串后面,表示匹配前一项0次或1次,即可有可无;但如果跟在.、+、?这类量词后面,它就切换到了“非贪婪模式”,也可以叫“惰性模式”。
这里有个关键点:正则表达式默认是“贪婪”的。
1. 贪婪模式
顾名思义,它会尽可能多地匹配字符。怎么个贪法呢?它会先尝试匹配整个字符串,如果不行,就“吐掉”最后一个字符再试,如此反复后退,直到找到一个匹配为止,目标是拿到最长的可能结果。
2. 非贪婪模式
与贪婪相反,它尽可能少地匹配字符。它是怎么“懒”的呢?它会从左边第一个字符开始,先匹配一点点看看成不成功,如果不成功,就再多“吃”进右边一个字符再试,如此反复前进,直到匹配成功,目标是拿到最短的可能结果。
假设我们有一个字符串:“<1><123>”
① 使用正则表达式 <(.+)>(贪婪模式)
它会试图匹配最长的、被<>包裹的字符串。结果呢?它直接把从第一个<到最后一个>之间的全部内容1><123都匹配进去了,最终返回整个“<1><123>”。
② 使用正则表达式 <(.+?)>(非贪婪模式)
这次它学“懒”了,只要找到最短的、符合条件的就停手。所以它匹配到第一个>就结束了,返回的结果是“<1>”。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9