2011-08-25 3 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 = 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

감사를 대답 : 일부 공간을 트리밍으로,

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"]; 

정규식 옵션 : 당신이 정말로 여기에 정규식이 필요하지 않습니다 주,이 일이없는 경우에도 좋네요 . – ErikssonE

+0

정보가 문자열 배열에 있는지 궁금합니다. 이 분할은 어떻게 작동할까요? 어떤 생각이있어? – ErikssonE