zoukankan      html  css  js  c++  java
  • re模块


    re模块

    这个模块提供了与 Perl 语言类似的正则表达式匹配操作。

    模式和被搜索的字符串既可以是 Unicode 字符串 (str) ,也可以是8位字节串 (bytes)。 但是,Unicode 字符串与8位字节串不能混用:也就是说,你不能用一个字节串模式去匹配 Unicode 字符串,反之亦然;类似地,当进行替换操作时,替换字符串的类型也必须与所用的模式和搜索字符串的类型一致。

    用法

    re.findall(pattern,string,flags=0)

    贪婪匹配,将匹配到的每个字符串放进一个列表中,返回该列表,按匹配到的顺序排列,没有匹配到的内容则返回空列表。

    import re
    
    res = re.findall('l.*l','Hello world!')
    res1 = re.findall('l.*l','H!')
    
    print(res)
    print(res1)
    
    ['llo worl']
    []
    

    要让.能匹配换行符,可在方法内加一个参数re.S

    re.findall('a.b','a
    b',re.S)  # 等同于re.DOTALL
    
    ['a
    b']
    

    re.search(pattern,string,flags=0)

    扫描整个字符串返回匹配到的第一个位置的匹配对象,如果没有匹配,就返回None。

    import re
    
    res = re.search('l.*l','Hello world!')
    res1 = re.search('l.*l','H!')
    print(res)
    print(res1)
    
    <re.Match object; span=(2, 10), match='llo worl'>
    None
    

    使用group()方法可显示匹配到的字符串,如果有多个参数,结果就是一个元组。

    print(res.group())
    
    llo worl
    

    re.compile(pattern,flags=0)

    将正则表达式编译为一个正则对象,通过这个对象的search()match()方法,可复用匹配规则。

    pattern = re.compile('o.*o')
    res = pattern.search('Hello world!')
    res1 = pattern.search('Hello Python')
    print(res.gronp())
    print(res1.group())
    
    o wo
    o Pytho
    

    参考文档

    https://docs.python.org/zh-cn/3/library/re.html?highlight=re#module-re

  • 相关阅读:
    分享一个详情页
    ES6初探,变量的声明
    ES6初探,什么是ES6
    提问回顾
    个人阅读&个人总结
    结对项目-数独程序扩展
    个人作业Week3-案例分析
    个人作业Week2-代码复审
    个人作业1
    【个人项目】数独
  • 原文地址:https://www.cnblogs.com/ChiRou/p/14278050.html
Copyright © 2011-2022 走看看