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

 更新时间:2022年04月01日 10:53:07   作者:小基基o_O  
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,下面这篇文章主要给大家介绍了关于Python正则表达式中flags参数的相关资料,需要的朋友可以参考下

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 Pandas高级教程之时间处理

    Python Pandas高级教程之时间处理

    我们发现关于时间日期的简单计算很多功能都是datetime库提供的,那么pandas有没有提供跟日期时间有关的函数,通过下面文章来了解下,这篇文章主要给大家介绍了关于Python Pandas高级教程之时间处理的相关资料,需要的朋友可以参考下
    2021-10-10
  • PyQt5每天必学之QSplitter实现窗口分隔

    PyQt5每天必学之QSplitter实现窗口分隔

    这篇文章主要介绍了PyQt5每天必学之窗口分隔,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • python实现将视频按帧读取到自定义目录

    python实现将视频按帧读取到自定义目录

    今天小编就为大家分享一篇python实现将视频按帧读取到自定义目录,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python利用pymysql和openpyxl实现操作MySQL数据库并插入数据

    python利用pymysql和openpyxl实现操作MySQL数据库并插入数据

    这篇文章主要为大家详细介绍了如何使用Python连接MySQL数据库,并从Excel文件中读取数据,将其插入到MySQL数据库中,有需要的小伙伴可以参考一下
    2023-10-10
  • windows下安装Python的XlsxWriter模块方法

    windows下安装Python的XlsxWriter模块方法

    今天小编就为大家分享一篇windows下安装Python的XlsxWriter模块方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • nlp自然语言处理学习CBOW模型类实现示例解析

    nlp自然语言处理学习CBOW模型类实现示例解析

    这篇文章主要为大家介绍了nlp自然语言处理学习CBOW模型类实现示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Python类反射机制使用实例解析

    Python类反射机制使用实例解析

    这篇文章主要介绍了Python类反射机制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Selenium常见八大定位法总结

    Selenium常见八大定位法总结

    自动化最基础的就属于定位元素了,元素不会定位,基本上已经团灭了,就不用再去考虑什么自动化了,下面这篇文章主要给大家介绍了关于Selenium常见八大定位法的相关资料,需要的朋友可以参考下
    2023-02-02
  • pandas条件组合筛选和按范围筛选的示例代码

    pandas条件组合筛选和按范围筛选的示例代码

    这篇文章主要介绍了pandas条件组合筛选和按范围筛选的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python一行代码实现ChatGPT接入微信机器人

    Python一行代码实现ChatGPT接入微信机器人

    这篇文章主要为大家介绍了Python一行代码实现ChatGPT接入微信机器人示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03

最新评论