如何使用Python 3.5在多行上使用正则表达式?

时间:2016-07-07 17:10:27

标签: python regex

如果我有以下

string = '''This is a
    multiline string
    for example purposes
    more stuff'''

我想用正则表达式找到两条中间线,我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以使用.*捕获整行减去换行符和\n来捕获换行符。例如:

import re

string = '''This is a
    multiline string
    for example purposes
    more stuff'''

r = re.search('^.*\n(.*)\n(.*)\n.*$', string)
print r.group(0) # Whole match
print r.group(1) # Second line
print r.group(2) # Third line

但是,在这个例子中,将字符串拆分为一个行数组更有意义。

print string.split('\n')[1] # Prints the second line

答案 1 :(得分:0)

通常,如果您想在具有多行的字符串上搜索regex的匹配项,这意味着它包含\n,则使用多行修饰符。

re.compile(r'<YOUR REGEX>', re.MULTILINE)

https://regex101.com/r/pK4aR8/1