비슷한 문자열이 있습니다.
SOI; 1; 2; 삼; 4; 5; 6; 7; SOI; 8; 9; 10; 11; 12; EOI; 13; EOI; SOI; 14; 15; 16; 17; 18; EOI;문자열을 C#에서 정규 표현식을 사용하여 분할합니다.
여기에서 SOI부터 시작하는 문자열을 분할해야합니다. EOI에;
출력은 다음과 같아야합니다.
[1]; 2; 삼; 4; 5; 6; 7; 13;
[1] - 8; 9; 10; 11; 12;
[2] - 14; 15; 16; 17; 18;
나는 아래의 코드
string regexexpr = "(?s)(?<=SOI;).+?(?=EOI;)";//@"SOI;(.*?)EOI;";
string sText = "SOI; 1; 2; 3; 4; 5; 6; 7;SOI; 8; 9; 10; 11; 12; EOI; 13; EOI; SOI; 14; 15; 16; 17; 18; EOI;";
MatchCollection matches = Regex.Matches(sText, @regexexpr);
var sample = matches.Cast<Match>().Select(m => m.Value);
를 사용하여 분할 시도 하지만
같은 출력을 얻고있다 [0] - 1; 2; 삼; 4; 5; 6; 7; SOI; 8; 9; 10; 11; 12;
[1] - 14; 15; 16; 17; 18;
더 나은 해결책을 제공해주십시오. 감사합니다
당신은 중첩 된 SOI/EOI 구조를 추출하는 방법을 묻는? 나는 당신이 정규 표현식으로 그것을 할 수 있다면 놀랄 것이다. 값 목록을 처리하는 코드를 작성하는 것이 더 쉬울 것입니다. –
잠깐,'[0] - 1; 2; 삼; 4; 5; 6; 7; 13; 출력으로? 그 13은'8; 9; 10; 11; 12; '다음 경기에 갈거야? –