特别是,我想知道我是否可以在模式字符串中指定一个嵌入式选项来启用多行模式。也就是说,通常使用Python正则表达式启用多行模式,如下所示:
pattern = re.compile(r'foo', re.MULTILINE)
我想通过在模式字符串中指定多行匹配来获得多行匹配,而不是使用re.MULTILINE选项。您可以使用嵌入式(?m)表达式在Java中执行此操作。如,
pattern = re.compile(r'(?m)foo')
这可能在Python中使用,还是我需要使用re.M选项?一般来说,Python中的嵌入式模式选项是否有很好的参考?
答案 0 :(得分:6)
是
来自docs:
(?iLmsux)
(来自'i'的一个或多个字母, 'L','m','s','u','x'。)小组 匹配空字符串;这些信 设置相应的标志:
re.I
(忽略大小写),re.L
(语言环境 依赖),re.M
(多行),re.S
(点匹配所有),re.U
(Unicode 依赖)和re.X
(详细),for 整个正则表达式。 (该 标志在Module Contents中描述。)如果您愿意,这很有用 包括标志作为的一部分 正则表达式,而不是传递
compile()
的标志参数 功能强>请注意
(?x)
标志会改变方式 解析表达式。它应该是 首先在表达式字符串中使用, 或者在一个或多个空格之后 字符。如果有 之前的非空格字符 标志,结果未定义。