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/

    爬取了整个页面的代码

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

  • 相关阅读:
    Oracle SQL语句收集
    SqlParameter In 查询
    SQL 性能优化
    Entity Framework
    【XLL API 函数】 xlfSetName
    【XLL API 函数】xlfUnregister (Form 2)
    【XLL API 函数】xlfUnregister (Form 1)
    【Excel 4.0 函数】REGISTER 的两种形式以及VBA等效语句
    【Excel 4.0 函数】REGISTER
    【Bochs 官方手册翻译】 第一章 Bochs介绍
  • 原文地址:https://www.cnblogs.com/tianyu2018/p/10842084.html
Copyright © 2011-2022 走看看