2011-08-02 30 views
0

私は巨大な文字列を持っています。その巨大な文字列から部分文字列を抽出する必要があります。条件は「TECHNICAL」または「JUSTIFY」で始まり、1から10までの任意の数字で終わる文字列です。たとえば、私は巨大な文字列から部分文字列を抽出する

文字列x = "これはテストです。テストテクニカル:テストで始まるこの部分文字列を抽出する必要があります。これは何度も繰り返しテストされています。

ので、私はこの

技術を必要とする:私はテストで始まるこの部分文字列を抽出する必要があります。

誰かがそれに対して洗練された解決策を持っているのだろうかと思っていました。

ありがとうございます。

答えて

0

正規表現を使用できます。 (| JUSTIFY技術)*([1-9] | 10) ``:
例:

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

私は、この正規表現を使用すると思います。?。 – MRAB

+0

私は文字列を少し変更し、私は間違った結果を得ています。私の新しい文字列は文字列入力= "1.TECHNICAL:これはテストBLAH BLAH BLAH RAL ESTATEです。私はあなたの正規表現を適用すると、私は技術的な代わりに1つを得る:これはテストBLAH BLAH BLAH REAL ESTATEです。 – Anjali5

+0

@MRABありがとうございます。私はあなたのものを使用しましたが、 '10'を最初に作りました。(TECHNICAL | JUSTIFY)*?(10 | [1-9]) –

関連する問題