2011-08-25 60 views
2

我有產品信息的字符串,我想分析該字符串並閱讀產品信息。C#中的RegEx組

我的字符串是這樣的:

ID: 1 
NAME: Product name 
INFORMATION: Here goes the information about a product 
STATUS: Available 

我想分析這樣這樣的文字:

string id = product id; 
string name = product name; 
string info = product information; 
string available = product availability; 

我怎樣才能實現這一目標。我知道這對羣體是可能的,但我被卡住了,不知道怎麼做。

在此先感謝。

回答

4

您可以很容易地解析數據,例如字典。 注意,你並不真的需要一個正則表達式在這裏,這是沒有一個更漂亮:

var values = data.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) 
        .Select(line => line.Split(":".ToCharArray(), 2)) 
        .ToDictionary(pair => pair[0], pair => pair[1], 
           StringComparer.OrdinalIgnoreCase); 
string name = values["name"]; 

一個正則表達式的選擇,一些空間修剪:

var values = Regex.Matches(data, @"^(?<Key>\w+)\s*:\s*(?<Value>.*?)\s*$", RegexOptions.Multiline) 
        .Cast<Match>() 
        .ToDictionary(m => m.Groups["Key"].Value, 
           m => m.Groups["Value"].Value, 
           StringComparer.OrdinalIgnoreCase); 
+0

感謝您的回答,它工作正常。 – ErikssonE

+0

我想知道如果信息是在一個字符串數組。這種分裂將如何工作?有什麼想法嗎? – ErikssonE