检查字符串是否只包含特定字符?



我需要检查字符串(密码验证器)是否包含python中的特定字符和长度。其中一个条件是字符串pwd只包含字符a - z、a - z数字或特殊字符"+","产生绯闻;,"*","/"。

引用

这些实用程序应该可以帮助我解决这个问题(但我不明白):

  • 使用isupper/islower决定字符串是大写还是小写
  • 使用isdigit检查是否为数字
  • 使用中的操作符检查指定字符是否存在字符串。

pwd = "abc"
def is_valid():
# You need to change the following part of the function
# to determine if it is a valid password.
validity = True
# You don't need to change the following line.
return validity
# The following line calls the function and prints the return
# value to the Console. This way you can check what it does.
print(is_valid())
我很感激你的帮助!

我们可以在这里使用re.search作为regex选项:

def is_valid(pwd):
return re.search(r'^[A-Za-z0-9*/+-]+$', pwd) is not None
print(is_valid("abc"))   # True
print(is_valid("ab#c"))  # False

您可以使用正则表达式,但由于该任务只涉及检查字符是否属于集合,使用python sets可能更有效。:

def is_valid(pwd):
from string import ascii_letters
chars = set(ascii_letters+'0123456789'+'*-+/')
return all(c in chars for c in pwd)

例子:

>>> is_valid('abg56*-+')
True
>>> is_valid('abg 56*')
False

使用正则表达式的替代:

def is_valid(pwd):
import re
return bool(re.match(r'[a-zA-Zd*+-/]*$', pwd))

相关内容

  • 没有找到相关文章

最新更新