zoukankan      html  css  js  c++  java
  • 爬虫_正则表达式

      正则表达式(regular expression)是一种字符串匹配的模式(pattern)。它可以检查一个字符串是否含有某种子串;替换匹配的子串;提取某个字符串中匹配的子串。

    3.1 常见语法

    # 导入正则模块
    import re
    
    # 字符匹配
    rs = re.findall('abc', 'adc')
    print(rs)
    rs = re.findall('a.c', 'abc')
    print(rs)
    rs = re.findall('a.c', 'a
    c')
    print(rs)
    rs = re.findall('a.c', 'a.c')
    print(rs)
    rs = re.findall('a.c', 'a.c')
    print(rs)
    rs = re.findall('a.c', 'abc')
    print(rs)
    
    rs = re.findall('a[bc]d', 'abd')
    print(rs)
    rs = re.findall('a[bc]d', 'acd')
    print(rs)
    
    # 预定义的字符集
    rs = re.findall('d', '123')
    # w 匹配 下划线 字母 中文
    rs = re.findall('w', 'Az123_中文$%')
    
    #数量词
    rs = re.findall('d*', '123')

    3.2 findall方法

    扫描整个string字符串,返回所有与pattern匹配的列表

    • pattern:正则表达式

    • string:string字符串中查找

    • flags:匹配模式

    import re
    # 1.findall方法,返回匹配的结果列表
    rs = re.findall('d+', 'gazikel23Zihoo98')
    print(rs)
    # 2.findall方法中,flag参数的作用
    rs = re.findall('a.bc', 'a
    bc', re.DOTALL)
    rs = re.findall('a.bc', 'a
    bc', re.S)
    print(rs)

      如果正则中没有()则返回与整个正则表达式匹配的列表。

      如果正则表达式中有()中匹配的内容列表,小括号两边的东西都是负责提取数据所在位置。

    # 3.findall方法中分组的使用
    rs = re.findall('a(.+)bc', 'a
    bc', re.DOTALL)
    # ['
    ']
    print(rs)

    3.3 r原串

    正则中使用r原串,能够忽略转义符号带来的影响

    将匹配的字符串中有多少个,r原串正则中就添加多少个即可。

  • 相关阅读:
    POSTMAN使用教程
    RocketMQ搭建-WEB集成RMQ-SE集成RMQ
    android studio 低版本升级高版本的问题
    SqlServer 2015修改表时出现“save changes is not permitted…”的解决方法
    MATLAB
    新的学习,加油!
    BAK文件怎么恢复到数据库中
    Go语言基础之包
    Go语言基础之文件操作
    python获取多线程的返回值
  • 原文地址:https://www.cnblogs.com/Gazikel/p/14911615.html
Copyright © 2011-2022 走看看