zoukankan      html  css  js  c++  java
  • 【学习笔记】第二章 python安全编程基础---正则表达式

    一、python正则表达式

    定义:正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式相匹配;

    1.1RE模块:是python语言拥有全部的正则表达式功能的一个正则模块;

    常见RE模块的方法:

    创建模式对象compile(pattern)、在字符串中寻找模式search(pattern,string)、在字符串开始处匹配模式match(pattern,string)、

    列表形式返回匹配项findll(pattern,string)、替换字符串中的匹配项sub(pattern,string)、根据模式分割字符串split(pattern,string)

    a.创建模式对象compile(pattern)

    在字符串中寻找模式search(pattern,string)

    b.在字符串开始处匹配模式match(pattern,string)

    为什么是None,match方法是指在字符串开始处匹配asd,上面的b中开始处没有asd,所以没有结果是None;

    修改下如下:

    c.列表形式返回匹配项findll(pattern,string)---指匹配到字符串中所有的正则,返回结果是一个元组

    d.替换字符串中的匹配项sub(pattern,string),匹配到asd的字符串都替换成aaa

    e.根据模式分割字符串split(pattern,string--匹配到.分割,返回的是一个列表

    re.I不分大小写

    ^只匹配字符串的开头

    .匹配任意字符

    d 匹配一个数字字符,等价于【0-9】

    1.2贪婪模式和非贪婪模式

    正则表达式通常用于在文本中查找匹配的字符串,python里的数量词默认的是贪婪的,意思就是总是尝试匹配尽可能多的字符

    非贪婪的则相反,总是尝试匹配尽可能少的字符

    *?,+?,??,{m,n}?   前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成非贪婪匹配;

    例如:正则表达式“ab*” 如果用于查找“abbbc”,将找到“abbb”。

    而如果使用非贪婪方法“ab*?”,将找到“a”。

    二、正则表达式练习

    爬虫一个网站:http://www.huya.com/

    爬取了整个页面的代码

    现在我们要刷选出“游戏”的字符串

  • 相关阅读:
    SetThreadAffinityMask设置线程亲缘性
    Delphi 获取北京时间(通过百度和timedate网站)
    delphi 实现微信开发
    翻书的效果:FMX.TSwipeTransitionEffect Animation
    [每日一题] OCP1z0-047 :2013-07-15 drop column
    Delphi获取当前系统时间(使用API函数GetSystemTime)
    Delphi代码中嵌入ASM代码
    Delphi Jpg和Gif转Bmp
    Delphi RichEdit的内容保存为图片
    Delphi 实现任务栏多窗口图标显示
  • 原文地址:https://www.cnblogs.com/tianyu2018/p/10842084.html
Copyright © 2011-2022 走看看