Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要正则表达式,它将检查我的字符串是一个数字并且是 4 位数字。也不是从 0 开始,也没有重复的数字。
例如:
这种问题使用正则表达式非常困难,而使用其他任何东西都非常容易。
尽管如此,您可以使用一堆前瞻和捕获组来完成这项工作,类似于:
([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])