day18 正则函数以及pygame

2019-01-16  本文已影响0人  _最美不是下雨天_

1.compile(正则表达式) --->将正则表达式转换为正则对象

    print(re.compile('r\d{3}'))

2.fullmatch(正则表达式,字符串) --->让字符串和正则表达式完全匹配

result = re.fullmatch(r'(\d{3})','123')
    print(result)

    应用:检测字符串内容是否符合要求,例如:检测账号、密码、判断手机号、身份证号等是否合法
    匹配对象:1.span  匹配结果在原字符串的位置
              2.start和end  -匹配到的字符串在原字符串中的开始下标和结束下标
              3.group  -获取匹配到的字符串(结果是字符串)
              4.string   -获取原字符串
    print(result.start(),result.end())
    print(result.span(1))#打印匹配结果的第一个分组,使用的前提示必须有分组
    print(result.group())
    print(result.group(1))#获取第二个分组匹配到的字符串
    print(result.groups())#获取所有分组匹配到的字符串

3.match(正则表达式,字符串)---->让字符串的开头和正则表达式进行匹配,匹配成功返回字符串对象,否则返回None

    print(re.match(r'\D\d','s211ka'))

4.search(正则表达式,字符串) ---->在字符串中取匹配第一个符合正则的子串,匹配成功结果是匹配对象,否则是None

    print(re.search(r'[\u4e00-\u9fa5]{3}','asd你好吗22askj'))

5.split(正则表达式,字符串)--->将字符串按照正则要求的子串进行切割(返回值是列表)

    print(re.split(r'\d+','sahdj123hjk123b,2312k3j'))

6.sub(正则表达式,字符串1,字符串2) ---->将字符串2中能够和正则表达式匹配的子串替换成字符串1,产生一个新的字符串

    print(re.sub(r'曾令鹏','*','dsadsadasd操你妈杂种曾令鹏'))

7.findall (正则表达式,字符串) --->在字符串中获取满足条件的所有字符串(结果是列表)
注意:如果正则表达式中分组,直接获取到的是分组中的内容,结果中有多个分组则返回的是元组

    print(re.findall(r'\d+[a-z]','das1sd2dsa'))
    print(re.findall(r'(\d+)[a-z]','das1sd2dsa'))

8.finditer(正则表达式,字符串) --->在字符串中获取满足正则表达式的所有子串(结果是迭代器,元素是匹配对象)

    result = re.finditer(r'\d+[a-z]', 'das1sd2dsa')
    print(result)
    print(next(result).group())

9.忽略大小写,匹配的越苏条件是放在函数的flags参数中的

    print(re.fullmatch(r'[a-z]{2}','dS',re.I))

练习:用户名必须是由字母数字下划线构成且长度在6-20个字符之间qq必须是5-12的数字首位不能为0

    re_str=r'[1-9]\d{4,11}'#QQ号
    re_str=r'[a-zA-Z\D_]{6,20}'
上一篇下一篇

猜你喜欢

热点阅读