"두 문자열 사이의 특정 문자열을 찾아 목록에 넣기"에 대한 질문이 있습니다.C# 두 문자열 사이의 특정 문자열을 목록으로 가져옵니다. <string>
-begin-
code:[264]
Name:[1]
Name:[2]
Name:[3]
-end-
code:[264]
Name:[1]
Name:[4]
code:[264]
Name:[6]
-begin-
Name:[6]
code:[264]
Name:[7]
Name:[8]
Name:[1]
-end-
내가 문자열을 분할 할 :
은 그 같은 문자열이 "이름" "-begin-"에서 "- 끝 -"사이에 아래와 같은 목록으로,
list<1>
Name:[1]
Name:[2]
Name:[3]
list<2>
Name:[6]
Name:[7]
Name:[8]
Name:[1]
이제 "-begin-"에서 "-end-"사이의 텍스트 만 목록으로 나눌 수 있습니다.
int first = 0;
int last = 0;
int number = 0;
int start = 0;
do {
first = text.IndexOf("-begin-", start);
last = text.IndexOf("-begin-", first + 1);
if (first >= 0 && last >= 0)
{
number = (last - first);
AVPline.Add(text.Substring(first,number).Trim());
start = last + 1;
}
} while (position > 0);
내가 문자열을 분할 할 생각이 없다 "이름 :"을 "-begin-"사이의 분할 텍스트 뒤에 "- 끝".
누군가 나를 도와 줄 수 있습니까?
고맙습니다.
"Name : [3]"행에 Split (':') [1]을 사용하면 [3] 부분을 가져올 수 있습니다. 네가 묻고있는거야? –
우리는 여전히 충분한 정보가 없습니다. 예를 들어''-begin-''과' "-end-"'시퀀스는 어떤 식 으로든'Name' 필드의 위치와 일치하지 않는 것처럼 보입니다. 일부'Name' 필드는 시작/끝 블록 안에 있고, 다른 것들은 그렇지 않습니다. 그것은 다소 우연합니다. 샘플 데이터가 정확하다면 간단히 앉아서 자신 만의 상세한 파싱 로직을 작성해야합니다. 파싱 로직 이외에 기술적 인 문제는 없습니다. – code4life