2011-08-02 159 views
0

我有一個巨大的字符串。我需要從那個巨大的字符串中提取一個子字符串。條件是以「TECHNICAL」或「JUSTIFY」開頭的字符串,並以1到10之間的任意數字結尾。例如,我有從一個巨大的字符串中提取子字符串

string x =「這是一個測試,我再次測試技術:我需要從測試開始提取這個子字符串。8.這是一次又一次的測試。

所以我需要這個

技術:我需要提取這個子開始測試。

我想知道是否有人有優雅的解決方案。

在此先感謝。

回答

0

您可以使用正則表達式。
實施例:

string input = "This is a test, again I am test TECHNICAL: I need to extract this substring starting with testing. 8. This is test again and again and again and again"; 
string pattern = @"(TECHNICAL|JUSTIFY).*?(10|[1-9])"; 

System.Text.RegularExpressions.Regex myTextRegex = new Regex(pattern); 

Match match = myTextRegex.Match(input); 
string matched = null; 
if (match.Groups.Count > 0) 
{ 
    matched = match.Groups[0].Value; 
} 

//Result: matched = TECHNICAL: I need to extract this substring starting with testing. 8 
+0

我會使用這個表達式:'(技術| JUSTIFY)*([1-9] | 10)'。?。 – MRAB

+0

我稍微改變了字符串,我得到了錯誤的結果。我的新字符串是字符串輸入=「1.TECHNICAL:這是一個測試BLAH BLAH BLAH RAL ESTATE。6.測試描述」。當我申請你的正則表達式時,我只得到1而不是TECHNICAL:這是一個測試BLAH BLAH BLAH REAL ESTATE。 – Anjali5

+0

@MRAB是的,謝謝,這是更簡單的,我用你的,但只使'10'先這樣'(TECHNICAL | JUSTIFY)。*?(10 | [1-9])' –

相關問題