2011-08-25 15 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