【问题标题】:RegEx For 4 digit unique stringRegEx 用于 4 位唯一字符串
【发布时间】:2013-06-11 19:13:12
【问题描述】:

我需要 RegEx 来检查我的字符串是一个数字并且是 4 位数字。也不以 0 开头,也没有数字重复。

例如:

  • 1234 正确
  • 0123 不正确
  • 234 不正确
  • 2334 不正确
  • 7890 正确

【问题讨论】:

  • 你有没有尝试过?除了问我们?

标签: regex numbers unique digit


【解决方案1】:

这类问题使用正则表达式非常困难,而使用其他任何东西都非常容易

尽管如此,您可以使用一堆前瞻和捕获组来完成这项工作,类似于:

([1-9])(?!.*\1)([0-9])(?!.*\2)([0-9])(?!.*\3)([0-9])(?!.*\4)

如果您只关心这四位数字,而不关心行/输入的其余部分中发现的任何内容,除了这四位数字之外,您可以控制前瞻的长度,例如:

([1-9])(?!.{0,2}\1)([0-9])(?!.{0,1}\2)([0-9])(?!\3)([0-9])

【讨论】:

  • 非常感谢。它就像一个魅力。我知道通过其他方法解决这类问题会更​​好,但我正在学习 RegEx 并且无法做到这一点,所以请你们。
猜你喜欢
  • 2017-04-09
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 1970-01-01
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
相关资源
最近更新 更多