• day024 正则表达式 re模块


    正则表达式:

    .     匹配除换⾏行行符以外的任意字符

      匹配字⺟母或数字或下划线

    s    匹配任意的空⽩白符

    d    匹配数字

       匹配⼀一个换⾏行行符

       匹配⼀一个制表符

        匹配⼀一个单词的结尾

       匹配字符串串的开始

    $     匹配字符串串的结尾

    W    匹配⾮非字⺟母或数字或下划线

    D    匹配⾮非数字

      匹配⾮非空⽩白符

    a|b   匹配字符a或字符b

    ()    匹配括号内的表达式,也表示⼀一个组

    [...]    匹配字符组中的字符

    [^...]    匹配除了了字符组中字符的所有字符

    量词:

    *    重复零次或更更多次

    +    重复⼀一次或更更多次

    ?    重复零次或⼀一次

    {n}    重复n次

    {n,}    重复n次或更更多次

    {n,m}    重复n到m次

    .*? XXX 的特殊含义,找到下一个XXX为止

    Re模块

    正则中分组(?P<name>.*?) 字典中的key,提取为value=ret.group("name")

    1.  findall 查找所有. 返回list

    2.  search 会进行匹配. 但是如果匹配到了了第⼀一个结果. 就会返回这个结果. 如果匹配不 上search返回的则是None

    3.  match  只能从字符串串的开头进⾏行行匹配,匹配到则返回结果

    4.  finditer 和findall差不多. 只不过这时返回的是迭代器

    其他操作:

    1.  re.split(“[ab]”,”asdfasdfasfw”)  先按a分割得到的结果在对b进行分割 最后得到字典     (分割)  但是(ab)加上括号后就会在切割结果中保留切割部分[a,b,….]

    2.  re.sub(r”d+”,”sb”,”sadfsdff1561dsfsd”)将字符串中的数字换成sb得到字符串            (替换)

    3.  re.subn(r”d+”,”sb”,”sadfsdff1561dsfsd”)  将字符串中的数字转换成sb,返回元组( 替换结果, 替换的次数 )

    4.  obj=re.compile(r“正则内容”)将字符串编译成正则表达式  (obj为正则表达式)

    5.  ret=obj.search(“内容”),结果为按照正则表达式来匹配内容

    爬虫重点:

    Obj=re.compile(正则表达式)

    Ret=obj.search(“范围”) 搜索 但一般用finditer(“查找范围”)

    Ret.group()返回整个内容

    Ret.group(“name”)  返回组的内容

  • 相关阅读:
    Apache 2.4+php 5.4 安装
    Linux 进程状态
    解决Redhat Linux AS使用yum时出现This system is not registered with RHN的问题(改用CentOS的yum)
    nagios 事件处理
    awk调用shell命令的两种方法:system与print
    磁盘性能分析
    如何通过JQuery将DIV的滚动条滚动到指定的位置
    GCC Windows Linux 下编译学习1
    Linux命令
    GCC Windows Linux 下编译学习2
  • 原文地址:https://www.cnblogs.com/litieshuai/p/9792327.html
Copyright © 2020-2023  润新知