zoukankan      html  css  js  c++  java
  • 正则和re模块(findall,search,match,finditer)

    一.正则表达式.

    什么是正则表达式:

    在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码

    量词:

    贪婪匹配机制和惰性机制:

    有一个特殊的组合就 .*?  它会有惰性机制,如果后面不给数据,就什么也不取,如果后面给一个 x 就是截至到 x 取值

    正则表达式的分组:

    在正则表达式中我们用()进行分组,在用re模块时,用分组后,在读取时,可以将分组的数据读出来,而舍弃其余数据.

    转义:

    在正则表达式中, 有很多有特殊意义的是元字符, 比如
    和s等,如果要在正则中匹配正常的"
    "而不不是"换行符"就需要对""进行转义, " 
    "变成'\'.在python中, 无论是正则表达式, 还是待匹配的内容, 都是以字符串的形式出现的, 在字符串中也有特殊的含义, 本身还需要转义."
    所以如果匹配一次" ", 字符串中要写成'\n', 那么正则里就要写成"\\n",这样就太麻烦了. 这个时候我们就用到了r' '这个概念, 此时的正则是r'\n'就可以了

     二.re模块

    什么时re模块:python的一套正则表达式的模块,核心功能有四个:

    1findall  查找所有,返回list.

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

    3.match  只能从字符串的开头进行匹配

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

    其他操作:

    关于用re模块做爬虫:

    关于两个坑:

    finall

    split

  • 相关阅读:
    数和量的认识
    判断Exe(DLL)和符号文件是否匹配---验证模块和符号文件是否匹配的工具和方法
    CPU怎么计算1+1----CPU计算的电路基础
    java8-StreamAPI之collection归约操作
    java8-Stream流API
    java8-从Lamda到方法引用和构造引用
    java8-详解Lamda表达式
    Java8-Lamda和Stream原理引入
    jdk13-新特性预览
    mybatis配置
  • 原文地址:https://www.cnblogs.com/lgw1171435560/p/10193203.html
Copyright © 2011-2022 走看看