You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式需求:禁止字符串首尾仅含两个下划线

解决正则匹配URL子路径的问题

问题分析

你当前用的正则^(?!^__.*__$).[a-zA-Z0-9_.-]+$逻辑有误:它会错误排除所有以__开头且以__结尾的字符串(包括开头/结尾下划线数量多于2的情况),但你的真实需求是仅禁止首尾恰好为两个下划线的字符串(即__xxx__格式,且xxx首尾字符不是下划线,或字符串就是__)。

修正后的正则表达式

^(?!^(?:__$|__[^_].*[^_]__)$)[a-zA-Z0-9_.-]+$

正则说明

  1. 负向预查部分(?!^(?:__$|__[^_].*[^_]__)$):专门排除两种禁止的情况:
    • __$:仅由两个下划线组成的字符串
    • __[^_].*[^_]__$:以两个下划线开头、两个下划线结尾,且开头下划线后第一个字符不是下划线、结尾下划线前最后一个字符不是下划线的字符串(比如__should_not_work__)
  2. 匹配部分[a-zA-Z0-9_.-]+:匹配所有由字母、数字、下划线、点、横杠组成的非空字符串

验证示例

  • 匹配(允许):_should_work_、__should_work___、_should_work___、___should_work_but_doesnt__________
  • 不匹配(禁止):__should_not_work__、__

内容的提问来源于stack exchange,提问作者Kelok Chan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:35:51