• 正则表达式功能概括


    正则表达式

    解释:是处理字符串的强大工具,有自己语法结构,能实现字符串的检索、替换、匹配验证等功能。
    对爬虫来说,用它来从html中获得数据就简单了。

    re库

    1.match()
    (更适合检测某个字符串是否符合某个正则表达式的规则,后面会讨论到)

    content='zifuchuan'
    result=re.match(' 正则表达式',content)
    result.group() #返回匹配出的字符串
    result.span() #返回字符串的在原字符串的位置范围
    result.group(1) #输出第一个被()包含的匹配结果

    2.贪婪与非贪婪匹配

    content='Hello 1234567 Word_This is a Demo'
    A=re.match('^Hello.*(d+).*Demo$',content) #贪婪匹配
    B=re.match('^Hello.*?(d+).*Demo$',content) #非贪婪匹配
    print(A)
    print(B)
    结果:
    A:7
    B:1234567
    

    原因:

    贪婪时候,d+ 意思是至少一个数字,而.表示会尽量匹配多的字符,会把123456‘吃掉’。
    非贪婪时候,.
    ? 代表匹配尽量少的字符,从来会把123456留下。

    3.修饰符

    解释:使.能匹配的字符串范围更广。
    1):re.S #使.能匹配任何字符,包括换行符。
    2):re.I #使.匹配对大小字符不敏感。
    3):re.U、re.L、re.X等

    4.转义匹配

    解决:要匹配的字符串包含.的问题。
    在正则表达式里真正想匹配.的时候,在.前加 形成.,来匹配字符串的.

    5.search()
    match()是从字符串头开始匹配正则表达式,若开头不匹配则直接输出 None;
    而search()是先从字符串整体找正则表达式。

    6.findall()

    search()只能匹配字符串中匹配中的第一个,而findall()会返回所有获取的内容,结果
    返回一个list列表。

    7.sub()
    re.sub()用来修改、删除文本。

    import re
    content='a1b2c3d4e5f6g7'
    A=re.sub('d+','',content)
    print(A)
    结果:abcdefg
    

    8.compile()
    把正则字符串编译成正则表达式对象,以便在后面中复用。
    content='zifuchuan'
    pattern=re.compile('正则表达式')
    re.search(pattern,content)

    欢迎关注我~会经常更新Webspider与数据分析挖掘方面的文章,技术! 谢谢~

  • 相关阅读:
    带有头结点的链表的基本操作
    转:gdb相关学习
    wareshark网络协议分析之ARP
    wareshark网络协议分析之DHCP
    java多线程(内附实例:窗口售票问题、人和叉子的问题)
    Android深度探索(卷1)HAL与驱动开发 虚拟环境的安装
    source insigt、pc-lint、VS联合使用
    java arrays类学习
    C#函数重载
    (转)Pycharm用鼠标滚轮控制字体大小
  • 原文地址:https://www.cnblogs.com/xubin97/p/10334720.html
Copyright © 2020-2023  润新知