2012-10-30 64 views
-4

我正在處理正則表達式,但我無法使其工作。正則表達式替換以特定字符開頭的文本中的行

有了這樣的文字:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ultricies congue feugiat. 

Tom wrote: 
> blablabla 
> this is very interesting 
> blabla blabla 
> I ate a apple yesterday 
> this is very interesting 
> blabla blabla 

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ultricies congue feugiat. 

我想以「湯姆說:」開始的文本的整體的一部分相匹配,並與最後一行才能開始以「>」結束將其刪除並獲得只有2 lorem ipsum句子。

我不知道我是不是夠清楚...

編輯:我在想匹配的一切,以「\ W寫道:」開頭的正則表達式,並且當一個換行符匹配停止其次是一個char是不是「>」

EDIT2:找到了解決辦法:

\w+ wrote:(\n>[^\n]*)* 
+0

我們仍然想(根據需要爲您的系統調整換行符)知道你到目前爲止首先。 –

+0

我想: (\ w +寫道:)|(?> * \ n)的 但是,如果它不換行結束它不走最後一行 再加上它並不像正確也會刪除以「>」開頭的行,但前面沒有「xxx寫道:」 – philippe87

+0

給你的問題一個好的標題意味着其他有類似問題的人可以找到你的問題和(希望)答案。 –

回答

1

匹配跨多行正則表達式需要指定多行匹配。

看到這個答案的詳細信息: Regular expression matching a multiline block of text

+0

多行標誌處於活動狀態,這不是問題,但是謝謝 – philippe87

+0

使用mutliline時,^和$的匹配是不同的。嘗試使用^來匹配不以「>開頭的行。 –

1

實踐像0​​的工具正則表達式。使得可視化你的正則表達式正在做什麼變得非常容易。

給這個一來一去,並根據需要調整:

Tom wrote:(.|\s)*>.*

+0

謝謝,但我已經在使用Kodos,它工作得很好。 – philippe87

+0

不起作用..因爲它匹配後的所有內容 – philippe87

+0

你是什麼意思?匹配什麼後的一切? – ubiquibacon

相關問題