求两个可精准匹配两组不同字符串的REGEX正则表达式
核心差异分析
两组样本的唯一稳定差异为:第二组所有字符串均以S1结尾,第一组所有字符串均不以S1结尾,基于此编写正则如下:
正则1(匹配全部第一组、不匹配第二组)
匹配规则:完整匹配整行,排除以S1结尾的字符串,表达式如下:
^RUN.*(?<!S1)$
匹配验证
- 第一组5行全部匹配,符合要求
- 第二组4行全部以
S1结尾被负向后行断言拦截,无匹配,符合要求
兼容备选(不支持负向断言的引擎可用)
^RUN.*(?:[^S].|.[^1])$
正则2(匹配全部第二组、不匹配第一组)
匹配规则:完整匹配整行,要求以S1结尾,表达式如下:
^RUN.*S1$
匹配验证
- 第二组4行全部匹配,符合要求
- 第一组5行均不以
S1结尾,无匹配,符合要求
表达式说明
^匹配字符串开头RUN匹配所有样本通用的开头字符,避免匹配无关内容.*匹配中间任意长度的任意字符(?<!S1)负向后行断言,要求字符串结尾前两位不是S1S1$要求字符串末尾为S1,$匹配字符串结尾
内容的提问来源于stack exchange,提问作者user319563
相关产品推荐
相关产品推荐

