zoukankan      html  css  js  c++  java
  • python-25-初识正则与re模块

    前言

    什么是正则呢?既是我们可以定义一些规则,从而对字符串进行过滤。
    python语言当中用re模块来操作正则,是匹配字符串的一种规则。

    一、初识正则规则

    1、字符类:

    2、数量限定符:

    3、位置限定符:

    4、特殊符号

     5、其他普通字符集及其替换:

     

     二、python中操作re

    python语言当中用re模块来操作正则,必须掌握方法:①findall ②search ③match

    1、findall:返回所有满足匹配条件的结果,放在列表里

    # 1、findall:返回所有满足匹配条件的结果,放在列表里
    import re
    ret = re.findall('[a-z|A-Z]+', 'Java Python C C# Go')
    print(ret)

     2、search:只要找到符合规则的第一个就直接返回

    • ①需要调用group()才能拿到结果。
    • ②没有找到方方方None,调用group会报错
    import re
    ret = re.search('Q', 'Java Python C C# Go')
    print(ret)                   # 拿到的是一个对象
    print(ret.group())          # 这样写匹配不到字符,会报错

     一般是这样用解决会报错,if ret:

    import re
    ret = re.search('Q', 'Java Python C C# Go')
    # print(ret)
    if ret:
        print(ret.group())

    3、match:从前往后找到第一个就返回

    • ①调用group才能拿到结果。
    • ②没有找到方方方None,调用group会报错。
    import re
    ret = re.match('Ja', 'Java Python C C# Go')
    if ret:
        print(ret.group())

     4、split:切割字符串

    import re
    ret = re.split('[Ja]', 'Java Python C C# Go')
    # 先按J分割,得到['', ava Python C C# Go],再按a分割,得到['', '', 'v', ' Python C C# Go']
    print(ret)

     5、sub、subn:替换

    import re
    # 将字符串的数字替换成空字符,得到:ABCD
    ret = re.sub('d', '', 'A1B2C3D', 3)   # 参数3表示只替换3个
    print(ret)
    ret = re.subn('d', '', 'A1B2C3D')     # 返回元组(替换的结果,替换了多少次)
    print(ret)

     6、compile:将正则表达式编译成为一个对象,需写入匹配规则

    # 6、compile:将正则表达式编译成为一个对象,需写入匹配规则
    import re
    comp = re.compile('gs(.+?)l')
    ret = comp.findall('gs963lol')
    print(ret)

     7、finditer:拿到的是一个迭代器,也需group才能拿到值

    import re
    ret = re.finditer('d', 'asd46sad78asd6564')
    print(ret)
    print(next(ret).group())            # 查看第一个值
    print(next(ret).group())            # 查看第二个值
    print([i.group() for i in ret])    # 查看剩下所有值

     欢迎来大家QQ交流群一起学习:482713805

  • 相关阅读:
    mac 界面以及界面浏览器等显示不全
    数组常用的方法总结
    工厂模式以及应用场景
    结构与布局-紧贴底部的页脚
    结构与布局-垂直居中
    vscode mac下终端code .快速打开工程文件
    javascript操作对象和集合(jquery 6)
    2018 Multi-University Training Contest 8
    2018 Multi-University Training Contest 8
    BZOJ 3196 二逼平衡树
  • 原文地址:https://www.cnblogs.com/gsxl/p/12398114.html
Copyright © 2011-2022 走看看