• python中re模块下flags修饰符的另类写法


    re模块中有一些表达式修饰符,包括:

    修饰符描述
    re.I 使匹配对大小写不敏感
    re.L 做本地化识别(locale-aware)匹配
    re.M 多行匹配,影响 ^ 和 $
    re.S 使 . 匹配包括换行在内的所有字符
    re.U 根据Unicode字符集解析字符。这个标志影响 w, W, , B.
    re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

    发现还可以写成下面这样,觉得很好玩,先记录下来:

    代码:

     1 #!/usr/bin/python
     2 # -*- coding: UTF-8 -*-
     3 
     4 import re
     5 
     6 
     7 test_line = r'Ab123abcABC456def789ggh'           # 定义一个字符串变量test_line
     8 m = re.compile(r'(a)', re.I)                     # 使用re的compile方法定义一个正则表达式规则
     9 print(m.flags)                                   # 打印re.I标签的值
    10 aa = m.split(test_line)                          # 在split方法中使用compile定义的正则表达式
    11 print(aa)                                        # 打印aa变量的值
    12 n = re.compile(r'(a)', flags=34)                 # 使用re的compile方法定义一个正则表达式规则,使用标签flags=34
    13 bb = n.split(test_line)                          # 在split方法中使用compile定义的正则表达式
    14 print(bb)                                        # 打印bb变量的值
    15 cc = n.match(test_line).group()                  # 在match方法中使用compile定义的正则表达式
    16 print(cc)                                        # 打印cc变量值
    17 dd = re.split(r'(a)', test_line, flags=34)       # 在split方法中使用标签flags=34
    18 print(dd)                                        # 打印dd变量值
    19 ee = re.split(r'(a)', test_line, flags=re.I)     # 在split方法中使用标签re.I
    20 print(ee)                                        # 打印ee变量的值

    打印结果:

    C:UsersAdministratorAppDataLocalProgramsPythonPython35-32python.exe C:/Users/Administrator/Desktop/mypython/test.py
    34
    ['', 'A', 'b123', 'a', 'bc', 'A', 'BC456def789ggh']
    ['', 'A', 'b123', 'a', 'bc', 'A', 'BC456def789ggh']
    A
    ['', 'A', 'b123', 'a', 'bc', 'A', 'BC456def789ggh']
    ['', 'A', 'b123', 'a', 'bc', 'A', 'BC456def789ggh']
    
    进程已结束,退出代码0

    从上面的代码和执行结果中可以看到,flags=re.I也可以写成flags=34这样,只是这样写的话代码不好辨认,所以不推荐这种写法,至于其他的修饰符应该也可以这样写,要先使用flags函数将修饰符对应的数字打印出来。

     

  • 相关阅读:
    软件仓库配置及编译http2.4及文件系统创建实例
    查找、打包、sed实例
    文件管理工具和基础脚本实例
    文件管理实例
    Linux系统中vim设置tab缩进为4个字符
    linux文件管理类命令及实例讲解
    文件元数据信息介绍及修改文件时间
    Linux发行版的系统目录名称命名规则以及用途
    回调和递归
    关于for循环的小案例
  • 原文地址:https://www.cnblogs.com/xzy186/p/14271099.html
Copyright © 2020-2023  润新知