2017-04-04 62 views
0

嘿家伙,所以我试着看以前的问题,但他们不回答它,就像我的老师希望它被回答。基本上我需要从用户输入中得到一个字符串,看它是否有: 至少有一个[!,@,#,$,%,^,&,*,(,)](非字母和非数字) 字符) o为这些特殊字符创建一个列表比较用户输入列表python3

我不知道如何使def做到这一点。请帮忙!

回答

1

你应该看看Regular expressions。正则表达式允许您以简明的方式执行许多字符串操作。具体来说,您需要使用re.findall()以查找字符串中的所有特殊字符并将其返回。您可以检查返回的列表是否有长度为0,以检查是否有任何特殊字符。

至于建设正则表达式查找特殊字符本身。我敢肯定,你可以计算的那部分;)

+0

感谢你,帮助了吨! –

+0

好吧,所以我尝试使用findall和if语句,只是现在忽略它。这就是我所做的'def containsSpecial(password): \t specialChar = ['!','@','#','$','%','^','&','*','' (',')'] \t如果re.findall(specialChar,密码) \t返回“true”' –

+0

废话我不知道如何使它看起来不错。 @pedro –

0

请尝试以下

import re 
inputstring = raw_input("Enter String: ") 
print inputstring 
print "Valid" if re.match("^[a-zA-Z0-9_]*$", inputstring) else "Invalid"