2014-09-11 148 views
0

我有以下正則表達式模式來刪除2行換行後的所有字符。正則表達式尋找單詞

(?<=.+[\r\n]+.+[\r\n]+)([\s\S]*) 

我在這裏的問題是,我也希望是2個換行後添加一個檢查特定的文本,例如,如果它被發現,不包括它。

這裏是我怎麼做我的C#代碼:

string newComment = string.IsNullOrEmpty(regexPattern) ? emailBody : new Regex(regexPattern, RegexOptions.IgnoreCase).Replace(emailBody, string.Empty); 

編輯

我想尋找一個特定的文字,例如「這是一個標誌:」那麼,如果它被發現,它不應該被包括在內並且它也不會被包括在內,同時保持當前的設計,其中2行換行後的所有內容都不會包含在內

樣本字符串:

string body = "Try comment."; 
string additionalBody = "This is a signature"; 
string newBody = body + System.Environment.NewLine + additionalBody + System.Environment.NewLine + "asd Asd"; 

所以newBody應該導致3段文字。

它應該只顯示「嘗試評論」。

可能出現的情況可以是:

1)在所述第一或第二段,文本可以存在並且應該被自動刪除。

2)如果自動簽名不存在但有3段,請刪除最後一段。

+1

「*我在這裏的問題是,我也希望是2個換行後添加一個檢查特定的文本,例如如果發現,請不要包含它。*「 - 目前尚不清楚你想達到什麼效果。你能澄清嗎? – 2014-09-11 07:22:10

回答

0

如何簡單:

(?<=(?:.+[\r\n]+){2})([\s\S]*)This is a signature 
+0

對不起,但它沒有在我的結局。 – Gerald 2014-09-11 07:32:27

+0

@ M42:\ R在.NET中不存在 – 2014-09-11 07:51:14

+0

@walidtoumi:太糟糕了:-(。 – Toto 2014-09-11 08:07:56

0

試試這個:

(?<=(?>.+[\r\n]+){2})(?:(?!\bThis is a signature\b)[\s\S])*