如何检查python字符串中是否有3个相同的字母

如何检查python字符串中是否有3个相同的字母,python,string,similarity,Python,String,Similarity,我需要检查用户输入的字符串,我需要知道它是否包含3个相同的字符,例如“!!!”或“qqq”或“111”等 我还需要知道字符串中是否有3个字母在键盘上彼此相邻,例如“qwe”或“ert”。我不知道怎么做,必须学会。你问的是两个不同的问题。我自己也在努力学习更多关于regex的知识,并认为它可以帮助你 import re # https://regex101.com/r/DTrSmV/1 regex = r"(.)\1{2}" line = "aaa!!!oo????" matches = re

我需要检查用户输入的字符串,我需要知道它是否包含3个相同的字符,例如“!!!”或“qqq”或“111”等


我还需要知道字符串中是否有3个字母在键盘上彼此相邻,例如“qwe”或“ert”。我不知道怎么做,必须学会。你问的是两个不同的问题。我自己也在努力学习更多关于regex的知识,并认为它可以帮助你

import re

# https://regex101.com/r/DTrSmV/1
regex = r"(.)\1{2}" 
line = "aaa!!!oo????"
matches = re.findall(regex, line)

print(matches)
您还可以使用itertools:

import itertools

line = "aaa!!!oo????"
[k for k, g in itertools.groupby(line) if len(list(g)) >= 3] 
两者都返回:

["a","!","?"]

至于键盘:

keyboard1 = "qwertyuiop"
lst = [keyboard1[ind:ind+3] for ind in range(len(keyboard1)-2)]
# lst <-- ['qwe', 'wer', 'ert', 'rty', 'tyu', 'yui', 'uio', 'iop']
返回

['qwe', 'rty']

祝你好运首先读这篇文章,我觉得有许多相互矛盾的方式来解释你的需求。“123AA456”是否算作包含3个相同字符?“1A23A4A56”是否算作包含3个相同字符?“AAAA”是否算作包含3个相同字符?思考这些案例可以让你洞察如何解决问题。你已经尝试过什么?请看。
['qwe', 'rty']