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原串正则中就添加多少个即可。

  • 相关阅读:
    汽车过沙漠问题【学习笔记】
    极值问题
    双色汉诺塔【分离型】
    二分查找(递归与非递归)
    t2712:字符串移位包含问题
    酒瓶和瓶盖换购新酒
    反转诗句
    字符串的展开
    回文子串[输出所有回文子串]
    最长最短单词
  • 原文地址:https://www.cnblogs.com/Gazikel/p/14911615.html
Copyright © 2011-2022 走看看