Python正则表达式中flags参数的实例详解


Posted in Python onApril 01, 2022

flags参数

re.I
    IGNORECASE
    忽略字母大小写

re.L
    LOCALE
    影响 “w, “W, “b, 和 “B,这取决于当前的本地化设置。

re.M
    MULTILINE
    使用本标志后,‘^’和‘$’匹配行首和行尾时,会增加换行符之前和之后的位置。

re.S
    DOTALL
    使 “.” 特殊字符完全匹配任何字符,包括换行;没有这个标志, “.” 匹配除了换行符外的任何字符。

re.X
    VERBOSE
    当该标志被指定时,在 RE 字符串中的空白符被忽略,除非该空白符在字符类中或在反斜杠之后。
    它也可以允许你将注释写入 RE,这些注释会被引擎忽略;
    注释用 “#”号 来标识,不过该符号不能在字符串或反斜杠之后。

忽略大小写

import re
text = '我爱Python我爱python'
pat1 = 'p'
# search
r1 = re.findall(pattern=pat1, string=text, flags=re.I)
print(r1)

[‘P’, ‘p’]

多行模式

import re
text = '我爱数学\n我爱Python\n我爱python'
pat1 = '^我'
# search
r1 = re.findall(pattern=pat1, string=text)
r2 = re.findall(pattern=pat1, string=text, flags=re.M)
print(r1)
print(r2)

[‘我’]
[‘我’, ‘我’, ‘我’]

匹配任何字符

import re
text = '''
我爱Python
我爱pandas
'''
pat1 = '.我'
# search
r1 = re.findall(pattern=pat1, string=text, flags=re.S)
print(r1)
r2 = re.findall(pattern=pat1, string=text)
print(r2)

[’\n我’, ‘\n我’]
[]

补充:正则表达式中的flags

MULTILINE,多行模式, 改变 ^ 和 $ 的行为

In [63]: s
Out[63]: 'first line\nsecond line\nthird line'
 
In [64]: pattern=re.compile(r'^\w+')
 
In [65]: re.findall(pattern,s)
Out[65]: ['first']
 
In [67]: pattern=re.compile(r'^\w+',re.M)
 
In [68]: re.findall(pattern,s)
Out[68]: ['first', 'second', 'third']

re.S   DOTALL,此模式下 '.' 的匹配不受限制,可匹配任何字符,包括换行符,也就是默认是不能匹配换行符

In [62]: s = '''first line
    ...: second line
    ...: third line'''
 
In [71]: regex=re.compile('.+',re.S)
 
In [73]: regex.findall(s)
Out[73]: ['first line\nsecond line\nthird line']
 
In [74]: regex=re.compile('.+')
 
In [75]: regex.findall(s)
Out[75]: ['first line', 'second line', 'third line']

re.X    VERBOSE,冗余模式, 此模式忽略正则表达式中的空白和#号的注释

email_regex = re.compile("[\w+\.]+@[a-zA-Z\d]+\.(com|cn)")
 
email_regex = re.compile("""[\w+\.]+  # 匹配@符前的部分
                            @  # @符
                            [a-zA-Z\d]+  # 邮箱类别
                            \.(com|cn)   # 邮箱后缀  """, re.X)

总结

到此这篇关于Python正则表达式中flags参数的文章就介绍到这了,更多相关Python正则表达式flags参数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用metaclass实现Singleton模式的方法
May 05 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
Aug 28 Python
python中关于for循环的碎碎念
Jun 30 Python
深入浅出学习python装饰器
Sep 29 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
Python饼状图的绘制实例
Jan 15 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
Python3如何判断三角形的类型
Apr 12 Python
基于Python下载网络图片方法汇总代码实例
Jun 24 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 Python
Python+Tkinter制作专属图形化界面
Pyhton爬虫知识之正则表达式详解
python 离散点图画法的实现
Python学习之迭代器详解
Python实战之大鱼吃小鱼游戏的实现
OpenCV实现常见的四种图像几何变换
关于Python使用turtle库画任意图的问题
Apr 01 #Python
You might like
MySQL授权问题总结
2007/05/06 PHP
一步一步学习PHP(3) php 函数
2010/02/15 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
jquery 插件重新绑定的处理方法分析
2019/11/23 jQuery
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
在Linux下调试Python代码的各种方法
2015/04/17 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
python生成密码字典的方法
2018/07/06 Python
python实现简单日期工具类
2019/04/24 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
中专毕业生求职简历的自我评价
2013/10/21 职场文书
优秀毕业生求职推荐信范文
2013/11/21 职场文书
上班上网检讨书
2014/01/29 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
行政主管岗位职责
2015/02/03 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
Django drf请求模块源码解析
2021/06/08 Python
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL