Python正则表达式中flags参数的实例详解
作者:小基基o_O 发布时间:2021-09-23 10:43:41
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)
来源:https://blog.csdn.net/Yellow_python/article/details/80543937
猜你喜欢
- 参考: Smashing magzine翻译+整理: Demix当完成一项前端的工作之后,许多人都会忘记该项目的结构与细节。然而代码并不是马
- example:models中的表# modelsclass UserInfo(models.Model): id = mode
- 实例如下所示:# -*- coding: utf-8 -*-#to find where use the table on xxxxx xx
- 前言:很多人都在使用mysql数据库,但是很少有人能够说出来整个sql语句的执行过程是怎样的,如果不了解执行过程的话,就很难进行sql语句的
- 本文实例讲述了Flask框架中request、请求钩子、上下文用法。分享给大家供大家参考,具体如下:request就是flask中代表当前请
- IPython + ptpython,完美体验首先是安装pip install ipython ptpython然后使用ptipython有
- <!DOCTYPE html><html lang="en"><head> <
- 本文给大家介绍sql server2012安装与启动图文教程,非常详细。sqlserver2012安装步骤如下所示:SQL Server 2
- 本文介绍了Python WEB应用部署的实现方法,分享给大家,具体如下: 使用Apache模块mod_wsgi运行Python WSGI应用
- 名词解释断号:比如,连续生成的编号,由于某种操作(通常为删除)后,产生不连续的编号,我们将这种不连续的编号称为断号。例如,数据库中有一个字段
- 可以查看: OPEN SYMMETRIC KEY 命令关于 对称密钥加密使用证书解密 CREATE MASTER KEY ENCRYPTIO
- 一、背景我们在进行代码调试时,通常使用两种方式。print 输出调试的内容或者标识通过断点调试debug但是我想知道代码的中间的每一行程序运
- 常见的图片加密方法包括加密算法、水印、隐藏、压缩等。下面简要介绍一些常见的图片加密方法:加密算法加密算法是一种基于数学运算的加密方式,可对图
- 前言Django原生自带的数据库支持是sqlite,但是我们现在常用的数据库一般是mysql,mangodb等数据库。所以我们要改变数据库的
- ''' 爬取豆瓣电影排行榜 设计思路: &nb
- 基于tkinter模块的GUIGUI是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,在此也无需进行赘述。Pytho
- 昨天网上一网友说,由于他同事误将“max server memory”设置为10M后,SQL Server数据库登录不了,当时我简单测试了一
- 目录1、字典的定义字典和列表的区别:字典的基本使用2、循环遍历3、字符串的定义4、字符串的常用操作字符串 查找和替换字符串 文本对齐演练去除
- Sql中in和not in中有null值的情况1)in的逻辑规则是or not in 的逻辑规则是 and2)判断null 的sql语句为
- 1、pyqtgraph库数据可视化效果还不错,特别是窗体程序中图像交互性较好;安装也很方便,用 pip 安装。2、在Python中新建一个