正则表达式技术咨询:匹配非独立连续双下划线/连字符规则
解决正则匹配连续下划线/连字符的需求
没问题,我来帮你搞定这个正则需求!
从你的描述和示例来看,核心要求是:匹配连续的__或--,但要排除被/单独包围的情况(比如/--/或/__/),只保留那些和其他字符处于同一路径段的组合(比如__a、g--这类前后至少有一个非/字符的情况)。
最终正则表达式
(?<!\/)(?:__|--)|(?:__|--)(?!\/)
正则各部分解释
(?<!\/):反向否定环视,确保当前匹配的__/--前面不是/(要么前面是普通字符,要么在字符串开头)。(?:__|--):非捕获组,用来匹配目标符号组合(连续两个下划线或连字符)。|:逻辑“或”,连接两种符合条件的匹配场景。(?!\/):正向否定环视,确保当前匹配的__/--后面不是/(要么后面是普通字符,要么在字符串结尾)。
匹配效果验证
把这个正则应用到你提供的示例字符串:
/--/dsdfsdf/dsfds /__/fsfsd/ /a/vvfdvds/dsvsdv /g--/cdssd/dsdcsd /sadsas/cdscd /--sadas/cascs/
会精准命中后四组的__或--,而前两组单独被/夹着的组合会被排除,完全符合你的要求。
内容的提问来源于stack exchange,提问作者Akash Tanwar
相关产品推荐
相关产品推荐

