我被要求创建一个程序来识别密码是否有效。我正在努力解决的一个问题是确定是否有两个相同的字符彼此相邻。我们将不胜感激,目前这是该计划:
SELECT DATEDIFF(MINUTE, LEFT(PtEntersRoomTime, 2) + ':' + RIGHT(PtEntersRoomTime, 2)
, LEFT(ProcSchedTime, 2) + ':' + RIGHT(ProcSchedTime,2)
) AS [TimeDifference]
FROM TableName
答案 0 :(得分:3)
检查相邻字符的正则表达式是
(.)\1
句点(。)匹配任何字符。括号在该字符周围创建一个捕获组,然后由\ 1。
引用所以,条件是:
if re.search(r"(.)\1", pswrd)
注意正则表达式之前的r字符。这使它成为原始字符串。正则表达式应始终为原始字符串。这可以确保正则表达式中的某些特殊字符(如\ b)在传递给re模块之前不会被解释。
您可以在此处测试正则表达式:http://regexr.com/3h0g0
答案 1 :(得分:1)
我认为正则表达式r'(.)\1'
应该做你想要的,其中\1
是反向引用。
答案 2 :(得分:0)
一种方法是使用any
和all
函数:
pswrd = input("Enter Desired Password:")
if any(all(b[0] == b[i] for i in range(len(b))) for b in [[pswrd[c], pswrd[c+1]] for c in range(len(pswrd)-1)]):
pass
答案 3 :(得分:0)
答案 4 :(得分:0)
您可以将list()
密码放入列表中并执行此操作:
pswrd = 'assdfds'
pswrd = list(pswrd)
for i in range(len(pswrd)):
try:
if pswrd[i] == pswrd[i+1]:
a = True
break
except IndexError:
a = False
break
else:
continue
a = False
print(a)
返回True,如果有两个相邻的字母相同的点,则返回False