RegEx需求:匹配含SON字符串并排除指定列表项(支持NP++等工具)
正则匹配含SON且排除指定字符串的NP++解决方案
核心逻辑
用负向预查让排除规则先生效——先把你指定的那些字符串(比如GRANDSON、SONY)直接排除,再去匹配所有包含SON的内容,这样就能实现排除组优先级高于匹配模式。
直接可用的正则表达式
整行匹配场景(匹配整行包含SON且不是指定排除字符串)
^(?!(GRANDSON|SONY)$).*SON.*$
- 要是需要排除更多字符串,直接在括号里用
|追加即可,比如^(?!(GRANDSON|SONY|MYEXCLUDE)$).*SON.*$ - 规则拆解:
^(?!(GRANDSON|SONY)$):从行开头就检查,只要是括号里的完整字符串,直接跳过不匹配.*SON.*$:匹配任何包含SON的整行内容,不管SON在开头、中间,还是带_、-这类特殊字符
子串匹配场景(匹配行内包含SON但不包含指定排除词的片段)
如果不需要匹配整行,只想找行里的目标子串,用这个:
\b(?!(GRANDSON|SONY)\b)\w*SON\w*
\b是单词边界,确保排除的是完整的GRANDSON、SONY,不会误处理GRANDSONTEST这类长串;要是不需要严格匹配完整单词,把\b去掉就行
NP++使用步骤
- 按Ctrl+F打开搜索框
- 切换到「正则表达式」模式
- 粘贴对应正则,根据需求选择是否勾选「匹配整行」
内容的提问来源于stack exchange,提问作者Radek Pilich
相关产品推荐
相关产品推荐

