2017-10-13 85 views
0

我一直试图在多行中尝试re.findall(),并且一直无法这样做。这是我的正则表达式。在Python中匹配多行正则表达式模式

rx = re.compile(r"```()* test.+```", re.DOTALL) 
list = rx.findall(string) 

而我回来的是[' ']。 (注意,字符串是从文件读入的。)任何人都可以解释这里出了什么问题吗?

我也尝试使用re.DOTALL|re.MULTILINE作为标志,他们也没有解决任何问题。

+1

你可以添加一些数据进行测试吗? – SatanDmytro

+1

有关'findall'的文档的一般提示:“如果模式中存在一个或多个组,则返回组列表”。这里有一个小组。 –

+0

我知道,但它是空的。我试图解析的字符串看起来像这样: '''test hi there '''(带换行符,不会显示) – ComedicChimera

回答

1

正如Michael Butscher所指出的那样,findall只会返回与您的模式中的组匹配的内容。在你的情况下,这是一个单一的白色空间。如果你想让整个比赛返回,请尝试

r'``` +test.+```'