多行的正则表达式

时间:2013-02-26 02:28:27

标签: python regex python-2.7

我已经制作了这个正则表达式((\s\s\s.*\s)*)。它意味着,3个空格或制表符,之后是许多字符和空格或制表符或行尾。 如何将每条线路存储到列表中?

所以,如果我有这样的事情:

___The rabbit caught the lion\n
___The tiger got the giraffe\n
___The owl hit the man\n

输出如下:

list=[The rabbit caught the lion, The tiger got the giraffe, The owl hit the man]

请注意,我为每个其他模式使用组。

1 个答案:

答案 0 :(得分:1)

看起来你只想匹配整行,从三个空格(或制表符)开始;这可以使用re.MULTILINE并使用^$锚来完成。

matches = re.findall('^\s{3}(.*)$', contents, re.MULTILINE)

如果你不关心在三个空格之前有字符,你可以将表达式减少到:

matches = re.findall('\s{3}(.*)', contents)

这是因为.会匹配到换行符的所有内容(默认情况下)。