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

能否用单个正则表达式实现带指定排除规则的字符长度校验?

结论

可以通过单个正则表达式实现你提出的全部校验规则。

可用正则表达式

匹配逻辑:符合规则的内容会成功匹配,不符合规则(有效字符超112)的内容匹配失败

^(?=(?:(?:##[A-Za-z0-9]+##|\[(?:R|L|%)\]|[{}[\]])*[^{}[\]]){0,112}(?:##[A-Za-z0-9]+##|\[(?:R|L|%)\]|[{}[\]])*$).*$

实现逻辑说明

  • 核心采用正向肯定预查(?=...)完成有效字符计数,预查不会消耗匹配字符,不会影响整体内容的匹配逻辑
  • 计数逻辑完全对齐你的要求:
    • 先跳过所有需排除的内容,每匹配到1个有效字符计数+1,最多允许计数到112
    • 需排除的内容完全覆盖你指定的三类:
      • 完整的##字母/数字##格式串
      • 固定标识[R]、[L]、[%]
      • 特殊字符{、}、[、]
  • 所有不在排除范围内的字符(含空格、其他合法字符)均会被计入有效长度,超出112则匹配失败

测试验证

你给出的示例内容有效字符数远低于112,可正常匹配通过;如果在示例中追加有效字符到总有效数超过112,正则会直接匹配失败,符合校验要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:06:01