1

我做了这个正则表达式((\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]

顺便提一下,我对我拥有的每个其他模式都使用了组。

4

1 回答 1

1

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

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

如果您不关心三个空格之前的字符,您可以将表达式简化为:

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

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

于 2013-02-26T03:00:55.867 回答