好的,所以我试着用python3中的regex来检查一个字符串,如果这个字符串有大写字母,那么这个单词的分数是5,如果它有上下两个字母,它的分数是10,等等。代码beelow的工作原理是如果单词是AAAAAAAA,它的分数是5,但是如果它是aaaaaaa,它仍然只得分5。在
def word_strength(entered_string):
wordtrenthscore = 0
contains_upper ="[A-Z]+"
validString = re.match(contains_upper, entered_string)
if validString:
stringscore += 5
contains_lower ="[a-z]+"
validString = re.match(contains_lower, entered_string)
if validString:
stringscore += 5
而不是
你想要吗
^{pr2}$另外,
re.match()
只在pattern
在字符串开头时返回正值!将re.match()
更改为re.search()
。在你试过用“^[A-Z]+$”和“^[A-Z]+$”来检查整个字符串是大写还是小写?在
“aaaaaaaaaaa”字符串与您的初始正则表达式“[A-Z]+”匹配,因为它会找到“A”零次或更多次(正好9次),但后面的A不匹配。如果通过添加“$”强制regex直到行尾,它应该可以工作。同样的问题也会发生在“aaaaaaaa”中,所以也需要行“^”的开头。在
所以:
这是明确的,没有混合不同的if分支。在
相关问题 更多 >
编程相关推荐