전문가에게 물어보세요:
스크립트를 사용하여 다음 텍스트를 64자마다 한 줄로 분할하는 방법,
598A0F0548917B44F6C87B44855B7B44D7637B44DA57BE45140B000000000000598A1405715D7B4433637B445CFF7A441F057B4460562A45DE04000000000000598A1905F6087B44C3357B4433F37A44A4007B44C07519455304000000000000598A1E055CFF7A44C3257B445CCF7A44F6D87A4460D10845D903000000000000
이 양식 받기

많은 사람들이 이 작업을 수행했으며 문자열이 어떻게 생겼는지에 따라 약간 다릅니다(항상 0의 긴 시퀀스가 있는지, 항상 64로 나눌 수 있는지, 얼마나 긴지).
다음은 Regex Match를 사용하여 일반적이지 않은 방법 중 하나입니다.
Names Default To Here(1);
txt = "598A0F0548917B44F6C87B44855B7B44D7637B44DA57BE45140B000000000000598A1405715D7B4433637B445CFF7A441F057B4460562A45DE04000000000000598A1905F6087B44C3357B4433F37A44A4007B44C07519455304000000000000598A1E055CFF7A44C3257B445CCF7A44F6D87A4460D10845D903000000000000";
splitCount = Length(txt) / 64; //amount of splits
regexPattern = repeat("(.{64})", splitCount); //create regex pattern to be used with Regex Match()
regexList = Regex Match(txt, regexPattern); //get list of splits
answer = Substr(regexList, 2); //drop first index, because it has the whole string (see scripting index for why)
//add to table
dt = New Table("test",
New Column("test", Character, Values(answer)),
New Column("lenght", Numeric, Continuous, << Set Each Value(Length(:test)))
);For 루프 및 Substr을 사용하고 문자열에 추가 값을 삽입하고 그 뒤에 Word를 사용할 수도 있습니다.
편집하다:
다른 정규식 방법:
Names Default To Here(1);
txtToSplit = "598A0F0548917B44F6C87B44855B7B44D7637B44DA57BE45140B000000000000598A1405715D7B4433637B445CFF7A441F057B4460562A45DE04000000000000598A1905F6087B44C3357B4433F37A44A4007B44C07519455304000000000000598A1E055CFF7A44C3257B445CCF7A44F6D87A4460D10845D903000000000000";
splitLength = "64";
regexPattern = "([^\n]{1,"||splitLength||"})";
replaceChar = ".";
result = Words(Regex(txtToSplit, regexPattern, "\1"||replaceChar,GLOBALREPLACE), replaceChar);For 루프 및 Substr 사용:
Names Default To Here(1);
txtToSplit = "598A0F0548917B44F6C87B44855B7B44D7637B44DA57BE45140B000000000000598A1405715D7B4433637B445CFF7A441F057B4460562A45DE04000000000000598A1905F6087B44C3357B4433F37A44A4007B44C07519455304000000000000598A1E055CFF7A44C3257B445CCF7A44F6D87A4460D10845D903000000000000";
splitCount = Length(txtToSplit) / 64; //amount of splits
resultList = {};
For(i = 0, i < splitCount, i++,
Insert Into(resultList, Substr(txtToSplit, 1+i*64, 64));
);
show(resultList);