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

    一 正则表达式

     https://www.cnblogs.com/Sup-to/p/10854522.html

    1. re模模块

    1.基本用法

    re.findall(正则匹配的格式,匹配的对象)

    2.正则匹配常用格式

    1.^
    只匹配开头在多行模式中匹配每一行的开头
    
    2.a|b
    匹配的格式a或者b
    
    3[]
    [a,b]匹配的格式a或者b如果ab为多个值他会把里面的东西打散
    
    [1-9]数字1-9
    [a-z]字母a-z
    [A-Z]字母A-Z
    [^x]内容不等于x
    
    4.$
    a$ 匹配已a 结尾的
    
    5..
    代表任意字符
    
    6.{}
    {n}代表大括号前字符n个
    {n,m}代表大括号前字符n-m个
    {n,}代表大括号前字符n-多个
    {+,}代表大括号前字符1-多个
    {0,}代表大括号前字符0-多个
    7.* 代表前面字符0-无穷大个 8.+ 代表前面字符1-无穷大个 9.? a?代表a字符0-1个 ?a,前面值是+或者*的时候?匹配内容a结束

     

    3.re.findall(正则匹配的格式,匹配的对象,re.S)

    re.S的作用:
    
    不使用re.S时,则只在每一行内进行匹配,如果存在一行没有,就换下一行重新开始,使用re.S参数以后,正则表达式会将这个字符串看做整体,在整体中进行匹配
    import re
    a = """sdhellolsdlfsdfiooe:
    yy988989pythonafsf"""
    b = re.findall('hello(.*?)python',a)
    c = re.findall('hello(.*?)python',a,re.S)
    print (b)
    print(c)
    输出结果:
    b:[]
    c:['lsdlfsdfiooe:
    yy988989']

    4.re.match和re.search

    # match 和 search的区别,mathch从开头开始匹配找一个,search搜索所有找第一个

    5.re.compile

    定义某种搜索格式
    res1 = re.compile('d+')
    res1.findall(查找对象)等同于re.findall('d+',查找对象)

    6.re.split()

    就是字符串的split方法,区别是可以使用正则表达式去替换

    7.re.sub和re.subu

    就是字符串的replace方法,区别是可以使用正则表达式去替换
    
    import re
    
    s = '猪八戒的媳妇是1高翠兰,孙悟空的媳妇是2白骨精,唐僧的媳妇是3女儿国王,沙悟净6没有媳妇(py9的学生们)'
    
    print(re.sub('d','',s))
    
    print(re.subn('d','',s))  # 除了会修改内容,还会返回修改了多少次
    猪八戒的媳妇是高翠兰,孙悟空的媳妇是白骨精,唐僧的媳妇是女儿国王,沙悟净没有媳妇(py的学生们)
    ('猪八戒的媳妇是高翠兰,孙悟空的媳妇是白骨精,唐僧的媳妇是女儿国王,沙悟净没有媳妇(py的学生们)', 5)

  • 相关阅读:
    自定义UITableViewCell
    使用NSOperation实现异步下载
    iOS中判断一个文件夹是否存在
    iphone下载进度条,显示下载字节数与百分比
    NSURLConnection下载文件并显示进度(HEAD)
    iphone 模拟器 显示 隐藏的资源库
    iOS使用NSURLConnection发送同步和异步HTTP Request
    NSFileManager和NSFileHandle(附:获取文件大小 )
    xcode4.2设立Created by &MyCompanyName_
    iphone开发之轻松搞定原生socket 编程,阻塞与非阻塞,收发自如
  • 原文地址:https://www.cnblogs.com/lovershowtime/p/11776549.html
Copyright © 2011-2022 走看看