当前位置: 首页 > 知识库问答 >
问题:

正则表达式来查找字符串是否包含所有数字0-9,可以以任何顺序[重复]

侯博易
2023-03-14

正则表达式来查找字符串是否包含所有数字0-9,无论顺序如何。有人能帮忙吗?

假设我有一个字符串-"01230912747238507156"这包含0-9的所有字符。所以我应该得到True。

共有3个答案

花和宜
2023-03-14

你可以用这样的计数器

string = "01230912747235071568"

cnt = 0
for i in range(0,10):
    if str(i) in string:
        print(i)
        cnt += 1

print(cnt)

如果你真的在寻找正则表达式解决方案(学习目的?),您可以使用多个lookahead(不可取,实际上是冗余代码):

import re
rx = re.compile(r'^(?=^0*0)(?=^1*1)(?=^2*2)(and so on...).+$')

也就是说:

(?=not_one zero or more times, then one)...
容鸿畴
2023-03-14

这个解决方案可以处理各种字符串,而不仅仅是数字字符。

s1 = 'ABC0123091274723507156XYZ' # without 8
s2 = 'ABC0123091274723507156XYZ8'

len(set("".join(re.findall(r'([\d])', s1)))) == 10 # False
len(set("".join(re.findall(r'([\d])', s2)))) == 10 # True

工作原理:

用regexfindall查找字符串中的所有数字。将所有匹配项加入到一个字符串中,并通过将其放入set中获得唯一字符。然后计算set的长度。如果所有数字都表示,长度将为10。

沈华晖
2023-03-14

可以使用Python内置的all()函数

请参见此处使用的代码

s = "0123091274723507156"
n = [0,1,2,3,4,5,6,7,8,9]
print(all(str(i) in s for i in n))

您也可以将[0,1,2,3,4,5,6,7,8,9]替换为list(range(0,10))

 类似资料:
  • 问题内容: 我对和都错了。我想检查哈希是否仅包含数字。我错过了什么? 问题答案: 应该这样做。原始匹配的任何内容都只包含一位数字。

  • 问题内容: 我是正则表达式新手,但我了解如何按顺序匹配正则表达式查询中的任何字符(例如[abc]将匹配a,b或c中的任何一个。此外,我相信“ abc”将完全匹配abc)。 但是,我该如何构造一个以任何顺序匹配所有字符abc的正则表达式查询?因此,例如,我希望它匹配“ cab”或“ bracket”。我使用Python作为脚本语言(不确定是否重要)。 问题答案: 在Python中,我不会为此目的使用

  • 问题内容: 我想测试一个字符串是否以a结束。我希望下面的Java行能打印出正确的文字。为什么打印错误? 问题答案: 在Java Regex中,(在String中的任意位置找到匹配项)和(与整个String匹配)之间存在区别。 String仅具有一个方法(实现等效于以下代码:),因此您需要创建一个与完整String匹配的模式:

  • 我将一个regex模式列表传递给< code>grep来检查syslog文件。它们通常匹配IP地址和日志条目; 这只是一个模式列表,例如我正在循环传递的“1\.2\.部分,因此我无法传递“-v”。 我很困惑试图做上述的逆,不匹配线与某个IP地址和错误!1.2.3.4.*已爆炸”将匹配除1.2.3.4告诉我它已爆炸之外的任何syslog行。我必须能够包括一个IP地址不匹配。 在Stack Overf

  • 问题内容: 我有字符串,我想检查它的内容是否包含中文字符(是/否) 你能帮我么? 谢谢!阿德里安 问题答案: 您可以使用Unicode字符类http://www.regular- expressions.info/unicode.html 这只是检查是否存在至少一个汉字。如果要匹配完整的字符串,则可能需要对此进行扩展。

  • 问题内容: 这是我的代码,以确定一个单词是否包含任何非字母数字字符: 我想知道正则表达式是否错误。我知道会匹配任何非单词字符。关于我所缺少的任何想法? 问题答案: 将您的正则表达式更改为: