Python 官方文档:入门教程 => 点击学习
目录flags参数忽略大小写多行模式匹配任何字符补充:正则表达式中的flags总结flags参数 re.I IGNORECASE
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我’]
[]
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参数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Python正则表达式中flags参数的实例详解
本文链接: https://lsjlt.com/news/144727.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0