• Python-正则表达式技巧-查找目标字符串-范例


    1.概述

      正则表达式在文本编辑领域内的作用是不用质疑的,它是强大、便捷、高效的文本处理工具。

    2.特殊字符

      所谓特殊字符,就是一些有特殊含义的字符,若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。

    特别字符描述
    $匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 $。
    ( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
    *匹配前面的子表达式零次或多次。要匹配 * 字符,请使用\*。
    +匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
    .匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
    []标记一个中括号表达式的开始。要匹配 [,请使用\ [。
    ?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
    |将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。‘\n’ 匹配换行符。序列 ‘\’ 匹配 “”,而 ‘(’ 则匹配 “(”。
    ^匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 ^。
    {}标记限定符表达式的开始。要匹配 {,请使用 {。
    |指明两项之间的一个选择。要匹配

    3.Python字符匹配模式

      re模块中的findall函数可以对指定的字符串进行遍历匹配,获取字符串中所有匹配的子串,并返回一个列表结果。该函数的参数含义如下。

     findall(pattern, string, flags=0)
    

    pattern:指定需要匹配的正则表达式。
    string:指定待处理的字符串。
    flags:指定匹配模式,常用的值可以是re.I、re.M、re.S和re.X。re.I的模式是让正则表达式对大小写不敏感;re.M的模式是让正则表达式可以多行匹配;re.S的模式指明正则符号.可以匹配任意字符,包括换行符\n;re.X模式允许正则表达式可以写得更加详细,如多行表示、忽略空白字符、加入注释等。

    4.范例

      匹配以struct开头以Suite;结尾的字符串。非贪婪模式匹配。

    groups = re.findall(r'struct.*?Suite;', data, flags=re.S);
    
  • 相关阅读:
    Qt/QML学习-PathView
    设计高并发系统的关键策略
    C# Winform围棋棋盘
    springboot227旅游管理系统
    【算法刷题】——美丽整数的最小增量
    猿创征文| Unity高级开发面向对象编程知识总结
    【VIM TMUX】开发工具 Vim 在 bash 中的显示与 tmux 中的显示不同
    C++入门教程(十一、宏)
    异常语法详解
    面试官:说说你了解的分布式 ID 生成方案
  • 原文地址:https://blog.csdn.net/m0_67316550/article/details/127066277