• python安全工具开发笔记(一)——python正则表达式


    一、re 库 绍

    python通过re模块提供对正则表达式的支持:
    1、先将正则表达式的字符串形式编译为Pattern实例;
    2、使用Pattern实例处理文本并获得匹配结果
    3、使用实例获得信息,进行其他的操作

    示例一:
    一致认为 第一个代码运行最快
    在这里插入图片描述
    第二个代码运行比较快
    示例二:
    在这里插入图片描述

    二、正则表达式字符介绍

    字符
    一般字符匹配自身abcabc
    .匹配任意换行符“\n”以外的字符。
    在DOALL模式中也能匹配换行符
    a.cabc
    \转义字符,是最后一个字符改变原来的意思。
    如果字符串中有字符 * 需要匹配,可以使用\*或者字符集[*]
    a\.c
    a\\c
    a.c
    a\c
    [...]字符集(字符类)。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c],第一个字符如果是^则表示取反,如[^abc]表示不是abc的其它字符。
    所有的特殊字符在字符集中都失去原有的特殊含义。在字符集中如果要使用]、-或^,可以在前面加上反斜杠
    a[bcd]eabe
    ace
    ade

    示例:
    在这里插入图片描述

    预定义字符集(可以写在[...]中)
    \d数字:[0-9]a\dca1c
    \D非数字:[^\d]a\Dcabc
    \s非空字符:[<空格>\t\r\f\v] a\sca c
    \S非空白字符:[^\s]a\Scabc
    \w单词字符:[A-Za-z0-9]a\wcabc
    \W非单词字符:[^\w]a\Wca c

    示例:
    在这里插入图片描述

    数量词(用在字符或(...)之后)
    *匹配前一个字符0次或者无限次abc*ab
    abccc
    +匹配前一个字符1次或无限次abc+abc
    abccc
    ?匹配前一个字符0次或1次ab?ab
    abc
    {m}匹配前一个字符m次ab{2}cabbc
    {m,n}匹配前一个字符m至n次
    m和n可以省略
    ab{1,2}cabc
    abbc
    逻辑、分组
    |代表左右表达式任意匹配一个
    它总是先尝试匹配左边的表达式,一旦成功匹配就跳过右边的表达式
    如果 | 没有包括在()中,则它的范围是整个表达式
    abc|defabc
    def
    (...)被括起来的表达式将做为分组,从表达式左边开始每遇到一个分组的左括号,编号 +1
    分组表达式做为一个整体,可以后接数量词。表达式中 | 仅在该组中有效
    (abc){2}
    a(123|456)c
    abcabc
    a456c
    iLmsux(编译选项指定)
    re.I忽略大小写
    re.L使用预定字符类 \w\W\b\B\s\S 取决当前区域设定
    re.M多行模式改变 ^ 和 $ 的行为
    re.S.任意匹配模式
    re.U使用预定字符类 \w\W\b\B\s\S\d\D 取决Unicode定义的字符属性
    re.X详细模式,可以多行,忽略空白字符,并且可以加入注释

    贪婪模式与非贪婪模式介绍
    正则表达式通常用于在文本中查找匹配的字符串。Python里的数量词默认是贪婪的,意思是总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。
    例如:正则表达式“ab*”如果用于查找“abbbc",将找到“abbb”。而如果使用非贪
    婪方法“ab*?”,将找到“a”。

  • 相关阅读:
    搞懂TypeScript的类型声明
    java中如何将Object转Map及Map转Object呢?
    【SQLServer】max worker threads参数配置
    多数网工碌碌无为,都是败在这件事上
    v-model的使用
    FPGA时序约束02——不同时序路径的分析方法
    【Java面试题】《尚硅谷经典Java面试题第一季(java面试精讲)》学习笔记
    什么是接口测试,我们如何实现接口测试?
    Spring-Batch读取数据 文本数据 数据库数据 XML数据 JSON数据
    通过ROS修改控制器参数
  • 原文地址:https://blog.csdn.net/weixin_40412037/article/details/126574697