2016-07-22 54 views
0

所以,我有一個從Microsoft Lync導出的消息的純文本文件。基本上,我採用了源代碼並剝離了HTML。它看起來是這樣的:正則表達式來幫助去除明文聊天記錄?

Smith, Joe [10:48AM]: 
Hey guys! 
How's it going? 
Smith, Jane [10:49AM]: 
Hey! 
Doe, John [10:50AM]: 
Wassup! 
Where are we going out today? 

所以你可以看到,他們都抵靠在海誓山盟,但更重要的是,一些用戶信息是多行。

我想要做的是創建一個正則表達式來幫助記事本++宏,它將通過並去除除了某個用戶的消息之外的所有內容,不包括他們的名稱和時間戳。

所以,我上面的例子,如果我的用戶是李四的,我想應該是這樣的結果:

Wassup! 
Where are we going out today? 

我正在尋找一個正則表達式,將基本針對所有用戶,但李四所以我可以通過並刪除所有消息,但他的(我可以在之後刪除他的名字和時間戳)。事情是,因爲有些消息是多行的,所以我需要一些方法來說「選擇這個用戶,並且他們的消息的所有行直到下一個用戶」。也許這會更容易使用Javascript或其他東西,但我覺得它應該以這種方式工作。

回答

0

用記事本+ +,只需更換很多次:

^.*\[.*[AP]M\]:\r\n(?:[\w\W]*?SURNAME, NAME \[.*[AP]M\]:((?:(?!.*\[.*[AP]M\]).*)*)|(?![\w\W]*\[.*[AP]M\]:)[\w\W]*) 

$1,代SURNAMENAME你所需要的人。您必須使用these settings

0

定位到所有用戶,但李四:

(?sm)^(?!Doe, John)[^\r\n]+:$\R(.*?(?=\R[^\r\n[]+\[.*:|\Z)) 

Live demo