正则表达式查找字符串是否包含所有数字0-9是否为任何顺序

时间:2018-01-26 15:07:52

标签: python regex

正则表达式查找字符串是否包含所有数字0-9是否为任何顺序。 有人可以帮忙吗?

假设我有一个字符串 - “01230912747238507156”这包含0-9的所有字符。所以我应该成真。

4 个答案:

答案 0 :(得分:3)

您可以使用Python的内置all()功能

See code in use here

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))

答案 1 :(得分:0)

您可以使用这样的计数器

string = "01230912747235071568"

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

print(cnt)

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

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

那是:

(?=not_one zero or more times, then one)...

答案 2 :(得分:0)

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

findall

工作原理:

使用正则表达式set查找字符串中的所有数字。将所有匹配项加入一个字符串,并通过将其放入set来获取唯一字符。然后计算 var client = new RestClient("https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer"); var request = new RestRequest(Method.POST); request.AddHeader("cache-control", "no-cache"); request.AddHeader("content-type", "application/x-www-form-urlencoded"); request.AddParameter("application/x-www-form-urlencoded", "grant_type=client_credentials&client_id=xxxx&client_secret=yyy", ParameterType.RequestBody); IRestResponse response = client.Execute(request); 的长度。如果所有数字都表示,则长度为10。

答案 3 :(得分:-2)

您可以使用.isDigit()过滤非返回bool的非数字