当前位置: 首页 > 面试题库 >

正则表达式查找具有唯一数字的数字

湛玄裳
2023-03-14
问题内容

我想查找没有重复数字的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}

可以使用正则表达式完成此操作,还是有更好的方法来实现此目的?


问题答案:

此正则表达式有效:

^(?!.*(.).*\1)\d{10}$

这使用锚定的否定前瞻和后向引用来断言没有重复的字符。

观看带有示例的现场演示。

在Java中:

if (str.matches("^(?!.*(.).*\\1)\\d{10}"))
    // number passes


 类似资料:
  • 我的条件... 字母数字值 只允许使用一个空格或连字符 必须包含至少一个数字 不能以空格或连字符开头或结尾 最少2个字符,最多16个字符,不包括空格/连字符 到现在为止,我准备了正则表达式 它只遗漏了第三点。 测试字符串有效 无效

  • 我用Python编写了这个正则表达式并在regex101上进行了测试,但它仍然没有按照我想要的方式工作: 我试图找到的是一种模式,其中字符串可以选择以这些符号之一开头或结尾,中间只有数字: 该列表包括破折号、正斜杠、反斜杠、括号、符号、空格和句号。如果字符串只包含中间的数字,并且在字符串的开头和/或结尾有可选标点,则搜索应返回true。 此正则表达式似乎适用于大多数情况,但如果我在中间的数字中添加

  • 问题内容: 我想用以下代码查找字符串中的所有数字: 我还尝试将定界符添加到正则表达式,使用正数作为的第二个参数,使用仅数字字符串,例如“ 123”作为第一个参数… 但是输出总是 我似乎想念一下正则表达式在Go中的工作原理,但是无法绕开它。这不是有效的表达方式吗? 问题答案: 问题出在你的第二个整数参数上。引用以下软件包的文档: 这些例程使用一个额外的整数参数n;如果n> = 0,则该函数最多返回n

  • 请帮助我编写正则表达式来解析以下字符串 其中,是GUID,和是范围从1到65536的数字 示例: 注意:GUID应该没有大括号(只有36个符号长度)。 这就是我尝试过的 但它允许任何数字。你能帮忙吗?有较短的路去吗

  • 问题内容: 我有一个单词列表,我必须输出其中没有元音的单词数量。我到目前为止 我更担心reg表达式是错误的。 问题答案: 这对我有用: 另外,您应该小写字符串,而不是表达式:

  • 问题内容: 我需要一个正则表达式 那么任何数字。并再次编号和。 所以这是有效的 但 无效 我尝试了以下模式: 但这些都不满足我的要求。请帮忙? 我现有的代码是 问题答案: 这样的事情应该起作用: 编辑 是的,不从该描述,如果最终清除被允许(假定一个初始是 不 )。 如果不: 或者 (如果看起来更合乎逻辑) 测试 产生: