python第十一天笔记

python第十一天笔记,第1张

python第十一天笔记

今日目标:
    正则表达式
    python高级特性
    网络相关的库
        |-- requests
    


正则表达式:
    
什么是正则表达式(Regular expression):
    
正则表达式历史:
    
python如何使用正则:
    一般而言,不同的编程都会提供对正则的支持,如java中,字符串对象中,有些方法直接支持正则,也同时提供正则的对应类
    python也同样的道理,它为开发者提供了一个专门支持正则的模块 -- re

re模块:
    常见方法:
        compile()
        search()
        findall()
        finditer()
        sub()
        split()
        match("需要匹配的规则", 文本字符串)        # 表示从头匹配

正则表达式:
    
元字符:
    
    .        # 匹配任意符号,除换行符之外(n)
    w        # 匹配有效符号(大小写字母、数字、_、各国的语言符号(python3)),不匹配特殊符号, 等价于:[a-zA-Z0-9_]
    d        # 匹配数字0~9 十个数字,等价于 [0123456789]
    s        # 匹配的空白位    常见的如:空格、t、n等符号

    [abcd]        # 该位置,必须是abcd中的某个来占位,列举
        |-- 匹配数字:[0123456789]、[0-9]
        |-- 匹配小写字母:[a-z]
        |-- 匹配大写字母:[A-Z]
        |-- 有效符号:[a-zA-Z0-9_]

    ^        # 以什么开头
    $        # 以什么结尾


            
反义符:
    W        # 匹配特殊符号
    D        # 匹配非数字
    S        # 匹配非空白位
    [^abcd]        # 表示该位不能使用列举中的某个符号

转义符:
    在绝多数的编程语言中,字符串 *** 作都是存在转义符, x
    为什么在window系统的中,文件系统路径的分隔符是\(本质最后是一个)

    正则中呢?
    在正则中,反斜杠也存在转义的作用!!!

注意:在python中,如果出现路径等情况,建议使用r"regexp",这种方式,减少转义符多次转义!!
    推荐:所有的正则表达式前面,都建议加上r!!!!!

重复(位数):
    *        # 任意位(0到多位)
    +        # 1到多位
    ?        # 表示0或者1,也就是说:可以没有,也可以有,但是有的话,只能是一位
    {m}        # 表示m位,m是个正整数
    {m,}        # 表示至少m位,可以更多
    {m,n}        # 表示范围区间[m, n]    (m<=n)

        
课堂练习:
    匹配出openlab的邮箱地址,且@之前有4到20为字符,如59127_ljh@openlab.com
    [a-zA-Z0-9_]{4,20}@openlab.com

分组:
    多个组合的列举:
        正则中,存在了一个|符号,表示的意思或者,多个中筛选
        [a-zA-Z0-9_]{4,20}@openlab.(com|org|cn|io)


    括号除了在多个组合的列举作用外,还有一个非常重要的作用,就是分组

    在正则表达式进行匹配的时候,在匹配完成之后,可以做二次匹配!!!
    注意,分组是由括号完成的!!!

如何匹配一个标签:r""

贪婪与懒惰:
    正则表达式中,如果使用多位匹配,则存在了一个贪婪和非贪婪模式,
    贪婪模式:尽可能多的匹配
    非太贪婪模式:尽可能少的匹配

    贪婪模式 --> 懒惰模式,只需要在位数的后面加上?
 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5711918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存