Python标准库及例程

一、re库(正则表达式)

  • 邮箱验证:^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$
  • 密码强度验证(最少八个字符,至少一个大写字母,一个小写字母和一个数字):^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^\n]{8,}$
  • 18 位身份证号验证:^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
  • IP 地址验证:^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
  • 手机号验证:^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$
import time
import re
import random

def genStr():
    global sigma
    s = ""
    for i in range(32):
        s += sigma[random.randint(0,15)]
    return s

sigma = "0123456789ABCDEF"
regex = re.compile(r'[1-2][^2-8][D-F]0+[A-F]')
count = 1
start = time.perf_counter()
match = regex.search(genStr())
while not match:
    count += 1
    match = regex.search(genStr())
print("程序匹配:猜测{}次, {}->{}".format(count, match.string, match.group(0)))
end = time.perf_counter()
print("程序用时:{:.5f}秒".format(end-start))

 

posted @ 2019-07-09 10:28  n0page404  阅读(84)  评论(0)    收藏  举报