【发布时间】:2013-06-11 19:13:12
【问题描述】:
我需要 RegEx 来检查我的字符串是一个数字并且是 4 位数字。也不以 0 开头,也没有数字重复。
例如:
- 1234 正确
- 0123 不正确
- 234 不正确
- 2334 不正确
- 7890 正确
【问题讨论】:
-
你有没有尝试过?除了问我们?
标签: regex numbers unique digit
我需要 RegEx 来检查我的字符串是一个数字并且是 4 位数字。也不以 0 开头,也没有数字重复。
例如:
【问题讨论】:
标签: regex numbers unique digit
这类问题使用正则表达式非常困难,而使用其他任何东西都非常容易。
尽管如此,您可以使用一堆前瞻和捕获组来完成这项工作,类似于:
([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])
【讨论】: