python中re模块下flags修饰符的另类写法
re模块中有⼀些表达式修饰符,包括:
汉长城遗址>简单的画画图片修饰符描述
re.I使匹配对⼤⼩写不敏感
re.L做本地化识别(locale-aware)匹配
re.M多⾏匹配,影响 ^ 和 $
re.S使 . 匹配包括换⾏在内的所有字符
re.U根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
发现还可以写成下⾯这样,觉得很好玩,先记录下来:
代码:
1#!/usr/bin/python
2# -*- coding: UTF-8 -*-
3
4import re
5
6
7 test_line = r'Ab123abcABC456def789ggh'# 定义⼀个字符串变量test_line
8 m = re.compile(r'(a)', re.I) # 使⽤re的compile⽅法定义⼀个正则表达式规则入党积极分子培训
9print(m.flags) # 打印re.I标签的值
美女高清壁纸10 aa = m.split(test_line) # 在split⽅法中使⽤compile定义的正则表达式
11print(aa) # 打印aa变量的值
12 n = re.compile(r'(a)', flags=34) # 使⽤re的compile⽅法定义⼀个正则表达式规则,使⽤标签flags=34
13 bb = n.split(test_line) # 在split⽅法中使⽤compile定义的正则表达式
14print(bb) # 打印bb变量的值
15 cc = n.match(test_line).group() # 在match⽅法中使⽤compile定义的正则表达式
16print(cc) # 打印cc变量值
17 dd = re.split(r'(a)', test_line, flags=34) # 在split⽅法中使⽤标签flags=34
18print(dd) # 打印dd变量值
19 ee = re.split(r'(a)', test_line, flags=re.I) # 在split⽅法中使⽤标签re.I
等不来的你20print(ee) # 打印ee变量的值
打印结果:记叙文的特点
C:\Urs\Administrator\AppData\Local\Programs\Python\ C:/Urs/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函数将修饰符对应的数字打印出来。