• Python中的正则表达式


    Python支持正则表达式功能。正则表达式是一种专门的语言,用来对字符串进行处理。

    正则表达式的基本功能是定义字符串模式,在被处理的字符串中识别特定的目标字符串。 

    正则表达式的语法

    语法包含以下几个方面

     1. 匹配的对象

    .      --任意一个字符

    []     --字符集合中的任意元素,例:[abce], [a-zA-Z0-9], [^a-z]

    d     -- decimal 数字

    w     -- 字母、数字

    s     -- any whitespace

        -- empty string

    以上这些字符为大写时,逻辑取反。


    2. 出现的位置

    ^, A     -- 字符串起始位置

    $,      -- 字符串结束位置


    3. 重复的次数

    *     -- 0 或者任意多次

    +     -- 1 或者任意多次

    ?     -- 0 或 1次

    {m}, {m,n}     -- 指定的次数,m次,或者从m到n次

     

    上面符号默认是greedy模式,会尽可能多的匹配字符。后面增加?后,将使用non-greedy匹配模式,比如:*?, +?, ??, {m}?

     

    4. 群组(group)的定义

    对于匹配上的字符串,如果要进行引用,需要使用组。

    ()     -- 定义组

    umber     -- 引用组

    (?P<name>) -- 定义组的名字

    (?P=<name>)     -- 通过组名字引用组

     

    5. 扩展定义

    (?...) -- 这种格式是对正则表达式的各类扩展

     

    (?=...), (?!...)  -- lookahead assertion

    (?<=...), (?<!...) -- negative lookahead assertion

    正则表达式应用举例

    [a-z]{5}     -- 任意5个字符
    (w+)-?(w+)     --  匹配这样的字符串:xxx-yyy, 或者xxxyyy
     

    Python中的操作方式

    两种使用正则表达式的方法:

    1) 通过全局函数,直接使用

    2) compile正则表达式,生成 RegexObject 对象,通过该对象进行查找操作

    Python中支持两种查找方式:

    1) match -- 只在字符串开始位置进行匹配

    2) search -- 在字符串任意位置进行匹配

     
    支持的操作:
    • match
    • search
    • findall
    • finditer
    • split
    • sub
     
    对匹配结果的处理
    如果能够搜索到,将反馈 MatchObject 对象,通过该对象可以访问搜索结果信息,主要有:
    1) 通过group引用匹配上的字符串;
    2) 匹配字符串的位置信息;
     
    其它注意点
    使用 raw string notation, r"xxxx"
     
     
    date: 2013.11.17
  • 相关阅读:
    设计模式之八:外观模式(Facade)
    Python模块学习笔记— —time与datatime
    Android加载图片OOM错误解决方式
    [C#]Attribute特性(2)——方法的特性及特性参数
    [C#]Attribute特性
    [Winform]一个简单的账户管理工具
    [C#]AES加密算法实现
    [C#基础]ref和out的区别
    [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。
    [Socket网络编程]由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。
  • 原文地址:https://www.cnblogs.com/weichsel/p/3428519.html
Copyright © 2020-2023  润新知