• python正则 re 模块函数


    • 正则表达式通用

    • python正则表达式,依赖python中 re 模块

    • re模块python 自带不用安装

    • import re # 使用前得导入模块

    1. match () 函数

    # 从起始位置开始匹配
    
    re.match ( pattern, string, flags=0)
    
    # 返回对象, group() 取值
    

    参数:

    • patter : 匹配的正则表达式

    • string : 要匹配的字符串

    • flags: 标志位, 用于控制正则表达式匹配的方式————》换行,大小写匹配

      • re.I 忽略大小写

      • re.L 做本地用户识别

      • re.M 多行匹配,影响 ^ 和 $

      • re.S 使 . 匹配包括换行符在内的所有字符 ----》 . 可以匹配到

      • re.U 根据Unicode 字符集解析字符 ,影响 w W  B

      • re.X 使我们以便灵活的格式理解表达式

    2. serch () 函数

    # 匹配整个字符串, 并返回第一个匹配成功的元素
    
    re.serch ( pattern, string, flags=0 )
    
    # 返回对象, group() 取值
    

    参数:

    • patter : 匹配的正则表达式
    • string : 要匹配的字符串
    • flags: 标志位, 用于控制正则表达式匹配的方式————》换行,大小写匹配

    3. findall () 函数 ------- 常用

    # 匹配整个字符串,并返回匹配到的所有数据,返回列表
    
    re.findall ( pattern, string, flags=0 )
    
    # 返回列表, 取值 [下标]
    

    参数:

    • patter : 匹配的正则表达式
    • string : 要匹配的字符串
    • flags: 标志位, 用于控制正则表达式匹配的方式————》换行,大小写匹配

    4. compile () 函数

    # 编译正则表达式,生成一个 Pattern 对象
    
    re.compile( 正则表达式 , flags=0)
    
    # 用法 
    pattern = re.compile(r'd+')
    
    # 用编译后的正则表达式去调用方法, 在str 中匹配
    s = pattern.match( str )
    
    
    

    在上面,我们已将一个正则表达式编译成 Pattern 对象,接下来,我们就可以利用 pattern 的一系列方法对文本进行匹配查找了。

    Pattern 对象的一些常用方法主要有:

    • match 方法:从起始位置开始查找,一次匹配
    • search 方法:从任何位置开始查找,一次匹配
    • findall 方法:全部匹配,返回列表
    • finditer 方法:全部匹配,返回迭代器
    • split 方法:分割字符串,返回列表
    • sub 方法:替换

    5. split () 函数

    # split 方法按照能够匹配的子串将字符串分割后 返回列表
    
    re.split( pattern , maxsplit = 最大)
    
    

    参数:

    • patter : 匹配的正则表达式
    • maxsplit : 用于指定最大分割次数,不指定将全部分割。

    6 . sub () 函数

    # 用于替换
    
    re.sub( pattern, repl, string, count=0, flags=0)
    
    # re.sub( 旧字符串, 新字符串,在string中匹配, 最大替换次数, 标志位)
    

    参数:

    • pattern : 可以是一个字符串也可以是一个正则,用于匹配要替换的字符

    • repl : 将会被替换的值,repl可以是字符串也可以是一个方法

    • string : 范围,在什么里面匹配

    • count :用于指定最多替换次数,不指定时全部替换。

    • flags : 标志位, 用于控制正则表达式匹配的方式————》换行,大小写匹配

    7. 匹配中文

    在某些情况下,我们想匹配文本中的汉字,有一点需要注意的是,

    中文的 unicode 编码范围 主要在 [u4e00-u9fa5],

    这里说主要是因为这个范围并不完整,比如没有包括全角(中文)标点,不过,在大部分情况下,应该是够用的。

    假设现在想把字符串 title = u'你好,hello,世界' 中的中文提取出来,可以这么做:

    import re
    
    title = '你好,hello,世界'
    pattern = re.compile(r'[u4e00-u9fa5]+')
    result = pattern.findall(title)
    
    print (result)
    

    注意到,我们在正则表达式前面加上了两个前缀 ur,其中 r 表示使用原始字符串,u 表示是 unicode 字符串。

  • 相关阅读:
    Javaweb 第4 天xml 课程
    Javaweb 第2天 JavaScript课程
    Javaweb 第1天 HTML和CSS课程
    第27天反射(解剖)技术
    Ip 讲解
    第26 天网络编程
    第25天多线程、网络编程
    【剑指offer】连续子数组的最大和,C++实现
    [剑指offer]数组中最小的K个数,C++实现
    【剑指offer】数组中出现次数超过数组长度一半的数字,C++实现
  • 原文地址:https://www.cnblogs.com/aaak/p/14084883.html
Copyright © 2020-2023  润新知