使用regex验证字符串数据,该regex只允许长度为6的数字和-(连字符),但连字符不应该是结尾,并且数字不相同.&l



使用带有-(连字符)

的正则表达式验证字符串要求:字符串只包含数字和-(连字符),不能以-(连字符)结尾,其他所有数字不能相同。

^([0-9-])(?!1+$)[0-9-]{5}$

上面的代码只允许数字和连字符,但不受限制,以连字符结束,并检查所有其他数字是否相同。

,

1111-1 Not allowed because all are same digits 
1111-2 Allowed
11112- Not allowed as its end with - Hypen
-12345 Not allowed as its start with - hypen 

您可以将模式写成

^(d)(?!(?:1|-)+$)(?!d*-d*-)[d-]{4}d$

  • ^字符串
  • 起始
  • (d)捕获组1中的单个数字
  • (?!正向阴性
    • (?:1|-)+$检查右侧是否只有组1值或连字符
  • (?!d*-d*-)Assert not 2连字符
  • )密切超前
  • [d-]{4}匹配4位数字或连字符
  • d匹配数字
  • $字符串结束

Regex演示

如果至少有1个连字符:

^(d)(?!(?:1|-)+$)(?=d*-)[d-]{4}d$

Regex演示

允许[01]连字符:

^(?=.{6}$)(d)(?=.*(?!1)d)d+(?:-d+)?$

查看在线演示

相关内容

最新更新