如何添加验证特征/规则



我尝试从 hacerrank 点击我不知道如何添加这些规则:
► 它可以有 4 组的数字,由一个连字符"-"分隔。
► 不得有 4 个或更多连续重复数字。

这是我的代码:

how_many=1 #This version for tests, Here will be input() 
for i in range(how_many):
    string=input()
    formated_str=''.join(string.split('-', 4))
    if (char.isdigit() for char in formated_str) and len(formated_str)==16 and (formated_str[0]=='4' or formated_str[0]=='5' or formated_str[0]=='6'):
        print("Valid")
    else:
        print("Invalid")

问题:

我不知道formated_str=''.join(string.split('-', 4))会像他们想要的那样工作,我的意思是"►它可能有 4 组的数字,用一个连字符"-"分隔。以及如何实施这第二条规则?

下面的函数首先删除代码字符串中的-,然后检查数字重复。正则表达式是以下r"d*(d)1{3,}d*"。如果正则表达式匹配,则代码无效,函数返回 False 。否则,该函数将拆分原始代码字符串,然后检查每个子字符串的长度。

import re
string   = "2134-4444-4412-3241"
string1  = "2134-4344-4412-3241"
string2  = "2134-4342-4412-3241"
def isValid(aString):
    pattern = r"d*(d)1{3,}d*"
    isValid = True
    rep_string = aString.replace('-', "")
    print(rep_string)
    if (not re.search(pattern, rep_string)):
        splitted = string.split('-')
        for split in splitted:
            if (len(split)!=4):
                return(False)
        return(isValid)
    else:
        return(False)
print(isValid(string))
print(isValid(string1))
print(isValid(string2))

我希望这个解决方案能帮助你。这段代码将为您提供以下输出:

False
False
True

相关内容

  • 没有找到相关文章

最新更新