Regex 如何排除特定字符模式 匹配除指定规则外的所有内容
正则匹配所有内容、仅排除指定字符模式实现方案
核心通过负向先行断言实现,可适配任意字符类排除模式,无需局限于原有单词匹配场景。
常用场景实现
场景1:匹配整行不包含排除模式的内容
通用正则写法:^(?!.*<你要排除的模式>).*$
各部分说明:
^匹配行/字符串起始位置(?!.*<你要排除的模式>)负向先行断言,校验当前位置往后的全部内容中不存在指定的排除模式.*匹配任意字符(默认不包含换行,若需要匹配换行可开启正则单行模式,或将.替换为[\s\S]实现全字符匹配)$匹配行/字符串结束位置
场景2:匹配长文本中所有不包含排除模式的连续子串
通用正则写法:(?:(?!<你要排除的模式>).)+
注意事项
- 如果排除模式中包含正则元字符(如
.、*、+、?、[]、()等),需要在元字符前加反斜杠\转义,比如要排除模式a.b,需写为a\.b - 如果需要忽略大小写匹配,可开启正则的忽略大小写标识
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

