는이 같은 문자열을 분할하여 사전을 만들 필요가 내가 값으로 "키"의 키와 같은 사전과 어떤으로 [] 내에서 모든 것을 얻기에 관심 [# 키 #!] :은 사전 <문자열, 문자열>에 문자열을 분할하는 방법
key :: value
SenderName :: Some name
SenderEmail :: Some email address
ElementTemplate :: Some text for
an element
감사
는이 같은 문자열을 분할하여 사전을 만들 필요가 내가 값으로 "키"의 키와 같은 사전과 어떤으로 [] 내에서 모든 것을 얻기에 관심 [# 키 #!] :은 사전 <문자열, 문자열>에 문자열을 분할하는 방법
key :: value
SenderName :: Some name
SenderEmail :: Some email address
ElementTemplate :: Some text for
an element
감사
C# 3.0 버전 -
public static Dictionary<string, string> SplitToDictionary(string input)
{
return new Regex(@"\[([^\]]+)\]([^\[]+)").Matches(input).Cast<Match>().ToDictionary(x => x.Groups[1].Value, x => x.Groups[2].Value.Trim());
}
표준 C# 2.0 버전 - - 값을 포함 할 수 있습니다
public static Dictionary<string, string> SplitToDictionary(string input)
{
Regex regex = new Regex(@"\[([^\]]+)\]([^\[]+)");
Dictionary<string, string> result = new Dictionary<string, string>();
foreach (Match match in regex.Matches(input))
{
result.Add(match.Groups[1].Value, match.Groups[2].Value.Trim());
}
return result;
}
+1, 30 초 동안 저를 때려주십시오. –
당신은 첫째을 제거 할 수 있습니다 '['그리고 모든 "] \ n"for for]]
그런 다음 '['를 이스케이프로 사용하여 문자열을 분할합니다. 이 때 당신이
키] 값 0과 같은 배열을해야합니다 - SENDERNAME] 일부 이름 1 - SENDEREMAIL] 일부 이메일 주소 2 - ElementTemplate] 요소
에 대한 일부 텍스트가 다음 그것은 간단합니다. ']'를 이스케이프로 사용하여 분할하면서 반복합니다. 첫 번째 요소는 키이고, 두 번째 요소는 값입니다.
형식이 Windows INI과 매우 비슷합니다. Google은 "C# ini file parser"를 검색 할 때 this article을 제공합니다. 거기에서 몇 가지 아이디어를 얻을 수 있습니다.
'['와 ']'이전 버전의
Oneliner? 그렇다면 어떻게 피할 수 있습니까? –
예에서 [ElementTemplate] 앞에 공백이 있습니다. 그것은 글리치인가 공백인가? 섹션 식별자는 항상 전체 행을 차지합니까? – VolkerK
VolkerK : [ElementTemplate] 이전 공간이 제 오류입니다 - 죄송합니다. 켄트 : 좋은 지적, 아마도 나는 모른다. 키가 더 쉽게 둘러 쌓인다면 아무 것도 둘러 쌀 수 있습니다. [! # key #!] –