public interface DAO {
@Query("SELECT * from " +
"(LEFT JOIN item ON task.id = item.taskId) " +
"LEFT JOIN sub_item ON item.id = sub_item.itemId " +
"WHERE task.id=:id")
List getTask(int id);
}
这是我的代码:
Task: Password validator
a. The length of the password needs to be from 8 to 30 characters.
b. The password needs to contain at least 2 uppercase characters.
c. The password needs to contain at least 2 lowercase characters.
d. The password needs to contain at least 1 digit.
e. The password needs to contain exactly 1, but not more of the following special characters:
@/%&*_-
有效。但是,条件e)尚未完全满足。如何使密码仅包含一个特殊字符?
答案 0 :(得分:1)
len
+ re.findall()
:
...
elif len(re.findall('[@/%&*_-]', password)) != 1:
# Some number of special characters other than 1 was found
...
或
...
elif len(re.findall('[@/%&*_-]', password)) == 0:
# No special characters were found
...
elif len(re.findall('[@/%&*_-]', password)) > 1:
# Too many special characters were found
(如果您选择后者,请尽量不要运行两次正则表达式)
答案 1 :(得分:1)
请勿为此使用正则表达式;在建议的密码中添加特殊字符的数量:
>>> passwd = "My_Pass@"
>>> special = '[@/%&*_-]'
>>> special_count = sum(passwd.count(c) for c in special)
>>> special_count
2
您现在可以根据需要使用special_count
。