2016-05-23 73 views
0

我試圖拆分多個消息(如在聊天記錄中),這些消息將由用戶名和日期分隔。問題是使用g修飾符使得正則表達式匹配的一切直到最後一部分。解釋起來有些困難,所以這裏有一個regex101,它可以更好地解釋它。將多個多行消息拆分爲匹配

謝謝你的時間。

+0

? – Bohemian

+0

它將在PHP中。 – mattrick

回答

2

讓你的正則表達式lazy使用?

(.*?), (\[\d+\.\d+\.\d+ \d+:\d+])\n([\s\S]*?) 

Regex Demo

而且,也沒有必要最後一部分的使用g修飾時。這將足以

(.*?), (\[\d+\.\d+\.\d+ \d+:\d+]) 

Regex Demo

如果你想捕捉的消息,那麼你可以使用

(.*?), (\[\d+\.\d+\.\d+ \d+:\d+])\n([\s\S]*?)(?=(?:(?:.*?), (?:\[\d+\.\d+\.\d+ \d+:\d+]))|$) 

Regex Demo

您正在使用什麼語言
+0

幾乎我所需要的,它也必須捕獲消息本身。 – mattrick

+1

@mattrick更新回答 – rock321987

+0

非常感謝您的幫助。 – mattrick