如何在一个txt文本中筛选需要的信息(readlines()操作配合for in可以吗)
例如文本中信息:
12345678
1234!@#¥
EWQDzx1234
qwdqQQ23!!
如何筛选出出现两个两个特殊字符+大写字符+小写字符+数字,且不少于8个(大于等于8)
主要是正则表达式不太明白,!!感谢

python正则筛选
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 一毛钱的年代 2022-03-05 17:31关注
以下采用正则表达式实现,请验证采纳,谢谢! 说明: ^匹配开头 (?![A-Za-z0-9]+$)匹配后面不全是(大写字母或小写字母或数字)的位置,排除了(大写字母、小写字母、数字)的1种2种3种组合 (?![a-z0-9\\W]+$)匹配后面不全是(小写字母或数字或非字母数字)的位置,排除了(小写字母、数字、特殊符号)的1种2种3种组合 (?![A-Za-z\\W]+$)匹配后面不全是(大写字母或小写字母或非字母数字)的位置,排除了(大写字母、小写字母、特殊符号)的1种2种3种组合 (?![A-Z0-9\\W]+$)匹配后面不全是(大写字母或数字或非字母数字),排除了(大写字母、数组、特殊符号)的1种2种3种组合 ^.匹配除换行符以外的任意字符,因为排除了上面的组合,所以就只剩下了4种都包含的组合了 {8,}8位以上 $匹配字符串结尾
import re
#正则表达式校验密码是否符合规则
def check_pwd(string):
pattern = r'^(?![A-Za-z0-9]+$)(?![a-z0-9\W]+$)(?![A-Za-z\W]+$)(?![A-Z0-9\W]+$)^.{8,}$'
res = re.search(pattern, string)
print(res)
if res:
return "OK"
else:
return "NO"if name == 'main':
a = 'ABCabc012!@#'
print(check_pwd(a))本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用