2013-09-28 49 views
0

我需要一些幫助來定義如何編輯RichTextBox中的文本。 例如,我將粘貼以下文本在RichTextBox:編輯richtextbox只保留包含下劃線的單詞

"Release to user USER the roles: ZBR_POA_FIL_APOIO_GESTAO, ZBR_REC_FIL_SUPPORT, ZBR_RJO_CD_FIL_SUPPORT, ZBR_SVD_CD_FIL_SUPPORT, Z_GENERAL_OBJECTS, Z_DEBUG, Z_CHECK" 

然後我想編輯這個只保留包含下劃線_文本,並在新線分開,就像這樣:

ZBR_POA_FIL_APOIO_GESTAO 
ZBR_REC_FIL_SUPPORT 
ZBR_RJO_CD_FIL_SUPPORT 
ZBR_SVD_CD_FIL_SUPPORT 
Z_GENERAL_OBJECTS 
Z_DEBUG 
Z_CHECK 

我想我應該可能使用正則表達式,但我沒有太多運氣。

+2

你嘗試過什麼到目前爲止? – Jerry

+0

是的,傑裏,我已經嘗試了很多東西,但我設法做的唯一事情是打破一個新行(實際上沒有任何祕密)的每個空間,現在我只想保留行包含下劃線,刪除沒有的行,然後刪除空行。我最需要的是:如何只保留包含下劃線的行? –

回答

0
var text = @"Release to user USER the roles: ZBR_POA_FIL_APOIO_GESTAO, ZBR_REC_FIL_SUPPORT, ZBR_RJO_CD_FIL_SUPPORT, ZBR_SVD_CD_FIL_SUPPORT, Z_GENERAL_OBJECTS, Z_DEBUG, Z_CHECK"; 
var words = text.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries); 
var wordsWithUnderscores = words.Where(o => o.Contains("_")).ToArray(); 

foreach(var word in wordsWithUnderscores) { 
    Console.WriteLine(word); 
} 
+0

謝謝路易斯。 比我想象的要簡單得多。 此致敬禮。 –

1
public string FormatString(string s) 
{ 
String[] array=Regex.Matches(@"\b(?=\w*_)\w+\b",s) 
        .Cast<Match>() 
        .Select(x=>x.Value).ToArray(); 
return String.Join("\n",array); 
} 
+0

非常感謝Anirudh。 我現在不打算使用這個函數,但它幫助我更多地理解正則表達式,這對我將來會非常有幫助。 最好的問候, Paulo Rocha –