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

如何修改正则表达式避免匹配首尾空格且支持15-16位字符校验

解决方案

你原正则的问题在于首尾的\s*本身就允许前后存在空格,直接调整上限自然会出现15位字符加末尾空格被识别为16位匹配的问题,按需求调整后的正则分两种场景:

场景1:允许字符串中间带空格,仅禁止首尾空格

^\S(?:\s*\S){14,15}$

匹配逻辑说明:

  • 开头强制匹配非空白字符,杜绝首空格
  • 后续重复匹配「任意数量空格+1个非空白字符」14到15次,加上开头的1个非空白字符,总非空白字符数刚好是15~16个,覆盖你的长度需求
  • 结尾最后一个匹配项是非空白字符,杜绝尾空格,完全避免15位有效字符加末尾空格被误判的问题

场景2:你的目标字符串本身不包含任何空格(比如你给出的示例ABCDFG001GRN-GH就没有空格)

直接用更简单的版本即可:

^\S{15,16}$

这个正则直接要求整个字符串全为非空白字符,长度刚好是15~16位,完全符合你的匹配要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 07:57:04