修正符


在Python的正则表达式中,模式修正符(也称为修饰符)是用于修改正则表达式的搜索行为的特殊字符。它们位于模式字符串的结尾,用于改变正则表达式的匹配方式。模式修正符可以是一个或多个字母,用于启用不同的匹配模式。

以下是一些常用的Python正则表达式模式修正符:

re.I(或re.IGNORECASE):使匹配对大小写不敏感。
re.M(或re.MULTILINE):多行模式,使^和$能够匹配每一行的开始和结束。
re.S(或re.DOTALL):点号(.)匹配模式,使点号能够匹配包括换行符在内的任意字符。
re.X(或re.VERBOSE):详细模式,允许编写更易于阅读的正则表达式,忽略空白和注释。
re.L(或re.LOCAL):本地化识别匹配的依赖,这个修饰符会影响\w、\W、\b、\B四个表达式的行为。
re.U(或re.UNICODE):根据Unicode字符集解析字符,这个修饰符影响\w、\W、\b、\B四个表达式的行为。

使用模式修正符的例子:

import re

pattern = r'foo'  # 基本的正则表达式模式
text = "Foo bar\nFoo Baz"

# 使用 re.I 修饰符进行忽略大小写的匹配
match = re.search(pattern, text, re.I)
if match:
    print("找到匹配项(忽略大小写):", match.group())

# 使用 re.M 修饰符进行多行匹配
match = re.search(pattern, text, re.M)
if match:
    print("找到匹配项(多行模式):", match.group())

# 使用 re.S 修饰符使点号能够匹配换行符
match = re.search(r'.*', text, re.S)
if match:
    print("找到匹配项(点号匹配模式):", match.group())

在这个例子中,我们使用了re.I、re.M和re.S三个不同的修饰符来改变正则表达式的匹配行为。注意,这些修饰符可以组合使用,例如re.IGNORECASE | re.MULTILINE将同时启用忽略大小写和多行模式。