首页 > 其他 > 详细

正则表达式

时间:2019-06-25 10:59:04      阅读:100      评论:0      收藏:0      [点我收藏+]

动机:

  1、文本处理成为计算机常见的工作之一。

  2、对文本内容的搜索、定位、提取是逻辑比较复杂的工作

  3、为了快捷方便的解决上诉问题,产生了正则表达式技术。

定义:

  文本的高级匹配模式,提供搜索,替换等功能。其本质是由一系列字符和特殊符号构成的字符串,这个字符串既正则表达式。

目标:应用

  1、熟练掌握正则表达式符号

  2、知道什么是正则表达式,如何

  3、能够读懂正则表达式,编写见到的正则匹配

  4、会使用re模块操作正则表达式

正则表达式特点:

  1、方便文本处理

  2、支持语言众多

  3、使用灵活,变化多样

数据的分类:

  1、结构化数据:

    特点:有固定的格式,如HTML,xml,json

  2、非结构化的工具:

    示例:图片,音频,视频,这类数据一半存储为二进制

      以wb方式写入文件中

re模块使用流程

  1、写法1

    r_list=re.findall(‘正则‘,‘字符串’,re.S)

  2、写法2

    1、创建编译对象

      p = re.compile(‘正则‘,re.S)

    2、进行字符串匹配

      r_list = p.findall(html)

  3、常用的方法

    1、match(s):字符串开头第一个,返回对象

    2、search(s):从开始往后找,匹配第一个,返回对象

    3、group()、从match和search中返回对象中取值

    4、findall()、返回全部匹配,返回一个列表

  4、元字符

    .  :匹配任意一个字符,不包括\n

    \d:匹配1个数字

    \s:空白字符

    \S:非空白字符#[\s\S]*匹配所有的字符

 

    [] :包含 [] 内容 #A[BCD]E  --> ABE  ACE  或者ADE

    \w:普通字符

    \W:特殊字符

    

    *:0次或多次

    +:一次或多次

    ?:0次或一次

    

    {m}:m次

    {m,n}:m-->n次,AB[1,3]--->ABC   ABBC  ABBBC

  5、贪婪模式和非贪婪模式

    1、贪婪模式匹配

      (.* ) 点星,在整个表达式匹配成功的前提下,尽可能多的去匹配

    2、非贪婪模式

      (.*?),在整个表达式匹配成功的前提下,尽可能少的去匹配   

 

import re

with open(‘./hei.html‘, ‘r‘, encoding=‘utf-8‘) as f:
    file = f.read()
    p = re.compile(‘<script>(.*)</script>‘, re.S) #使用re.S参数以后,正则表达式会将这个字符串作为一个整体,将“\n”当做一个普通的字符加入到这个字符串中,在整体中进行匹配
    r_list = p.findall(file)
    print(r_list)

  

 

 

 

 

      

正则表达式

原文:https://www.cnblogs.com/followlqc/p/11081480.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!