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

正则表达式无法正确排除含连字符模式的问题求助

解决方案

你的问题出在原正则的[^-]*.*部分——[^-]*仅匹配到第一个-前的内容,后续的.*会无差别匹配包括-在内的所有字符,导致无法排除含-的字符串。同时原正则未锚定字符串首尾,可能出现部分匹配的情况。

根据你的需求,正确的正则表达式应该是:

^_*[a-zA-Z][a-zA-Z0-9_]*(?<!_)$

规则拆解

  • ^:锚定字符串起始位置,确保从开头开始验证
  • _*:允许0个或多个下划线开头
  • [a-zA-Z]:强制要求下划线(如果有的话)之后必须以字母开头,排除纯数字或下划线后接数字的情况
  • [a-zA-Z0-9_]*:后续仅允许字母、数字、下划线,直接排除任何-的存在
  • (?<!_):负向断言,确保字符串结尾不是下划线
  • $:锚定字符串结束位置,确保整个字符串都符合规则

测试验证

  • 匹配成功:a100__version_2、_a100__version2
  • 匹配失败(排除):100__version_2、a100__version2_、_100__version_2、a100--version-2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:20:34