Day32笔记-正则表达式

一、正则表达式

1.案例-校验qq号

合法的qq号:

​ a.全部是数字 b.位数5~11位 c.开头不能为0

'''
合法的qq号:
    a.全部是数字
    b.位数5~11位
    c.开头不能为0
'''
# 方式一
def check_qq1(qq:str):
    result = True
    if qq.isdigit():
        if len(qq) in range(5,12):
            if qq[0] == '0':
                result = False
        else:
            result = False
    else:
        result  = False
    return result
​
# 方式二
def check_qq2(qq):
    if (qq.isdigit()) and (len(qq) in range(5,12)) and (qq[0] != '0'):
        return True
    return False
​
# 方式三
import re
def check_qq3(qq):
    # 如果匹配上了则返回Match object,如果匹配不上则返回None
    # r = re.match(r'[1-9][0-9]{4,10}$',qq)
    r = re.match(r'[1-9]\d{4,10}$', qq)
    return True if r else False
​
if __name__ == '__main__':
    qq = '2557746765226272727'
    print(check_qq3(qq))
2.概念

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。注意:Python中的正则的模块名为re,所以自定义文件的名字不能命名为re

【面试题】正则表达式的特点

  • 搜索模式可用于文本搜索。如:search(),findall(),finditer() ***

  • 正则表达式是由一个字符序列形成的搜索模式。

  • 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。

  • 正则表达式可以是一个简单的字符,或一个更复杂的模式。

  • 正则表达式可用于所有文本替换的操作,如:sub(),subn()

而在python中,通过内嵌集成re模块,可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行

使用场景:

  • 用于验证用户名,密码,银行卡号,身份证号,手机号,邮箱,ip地址等

  • 爬虫时,使用正则解析网页中的内容

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

re 模块使 Python 语言拥有全部的正则表达式功能

3.单字符匹配
"""
.                匹配除换行符以外的任意字符
[0123456789]     []是字符集合,表示匹配方括号中所包含的任意一个字符
[good]           匹配good中任意一个字符
[a-z]            匹配任意小写字母
[A-Z]            匹配任意大写字母
[0-9]            匹配任意数字,类似[0123456789]
[0-9a-zA-Z]      匹配任意的数字和字母
[0-9a-zA-Z_]     匹配任意的数字、字母和下划线
[^good]          匹配除了good这几个字母以外的所有字符,中括号里的^称为脱字符,表示不匹配集合中的字符
[^0-9]           匹配所有的非数字字符
\d               匹配数字,效果同[0-9]
\D               匹配非数字字符,效果同[^0-9]
\w               匹配数字,字母和下划线,效果同[0-9a-zA-Z_]
\W               匹配非数字,字母和下划线,效果同[^0-9a-zA-Z_]
\s               匹配任意的空白符(空格,回车,换行,制表,换页),效果同[ \r\n\t\f]
\S               匹配任意的非空白符,效果同[^ \f\n\r\t]
"""
"""
.                匹配除换行符以外的任意字符
[0123456789]     []是字符集合,表示匹配方括号中所包含的任意一个字符
[good]           匹配good中任意一个字符
[a-z]            匹配任意小写字母
[A-Z]            匹配任意大写字母
[0-9]            匹配任意数字,类似[0123456789]
[0-9a-zA-Z]      匹配任意的数字和字母
[0-9a-zA-Z_]     匹配任意的数字、字母和下划线
[^good]          匹配除了good这几个字母以外的所有字符,中括号里的^称为脱字符,表示不匹配集合中的字符
[^0-9]           匹配所有的非数字字符
\d               匹配数字,效果同[0-9]
\D               匹配非数字字符,效果同[^0-9]
\w               匹配数字,字母和下划线,效果同[0-9a-zA-Z_]
\W               匹配非数字,字母和下划线,效果同[^0-9a-zA-Z_]
\s               匹配任意的空白符(空格,回车ÿ

你可能感兴趣的:(Python,笔记,正则表达式,pycharm,python,数据分析)