【发布时间】:2013-11-25 23:30:12
【问题描述】:
我想查找没有重复数字的10位数字,例如:
1123456789 //fail, there are two 1's
6758951230 //fail, there are two 5's
6789012345 //pass, each digit occurs once only.
目前我正在使用正则表达式,但只能匹配 10 位数字(它不检查重复项。我正在使用这个正则表达式:
[0-9]{10}
这可以用正则表达式完成还是有更好的方法来实现这一点?
【问题讨论】:
-
你必须使用反向引用来检查一个数字是否还没有被捕获。
-
这不是一个适合正则表达式的问题。只需编写一个简单的循环,并使用一个 boolean[10] 数组来记录每个数字的出现情况。
-
@JimGarrison 这绝对是正则表达式的工作:请参阅my answer 了解如何做到这一点。永远不要说永远:)
-
对于 > 10 位字符串中的唯一 10 位数字,我看不到使用正则表达式的解决方案,除非它是布尔类型断言(就像我发布的那样)。也许它可能,但可能不使用
*量词。