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 numpy 一维数组转变为多维数组的实例
Jul 02 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
Sep 18 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
python实现随机加减法生成器
Feb 24 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
Python批量安装卸载1000个apk的方法
Apr 10 Python
520使用Python实现“我爱你”表白
May 20 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
Pytorch 中的optimizer使用说明
Mar 03 Python
Python+Tkinter制作专属图形化界面
Pyhton爬虫知识之正则表达式详解
python 离散点图画法的实现
Python学习之迭代器详解
Python实战之大鱼吃小鱼游戏的实现
OpenCV实现常见的四种图像几何变换
关于Python使用turtle库画任意图的问题
Apr 01 #Python
You might like
NOT NULL 和NULL
2007/01/15 PHP
php生成略缩图代码
2012/07/16 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
yii数据库的查询方法
2015/12/28 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
React组件生命周期详解
2017/07/03 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
Python作用域用法实例详解
2016/03/15 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
pandas分组聚合详解
2020/04/10 Python
个人校本研修方案
2014/05/26 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
体育活动总结
2015/02/04 职场文书
思想道德自我评价2015
2015/03/09 职场文书
大学生村官入党自传
2015/06/26 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫