2017-10-13 65 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.+```'