请教专家:
如何用脚本将下面的文本、按每 64 个字符拆分为1行、
598A0F0548917B44F6C87B44855B7B44D7637B44DA57BE45140B000000000000598A1405715D7B4433637B445CFF7A441F057B4460562A45DE04000000000000598A1905F6087B44C3357B4433F37A44A4007B44C07519455304000000000000598A1E055CFF7A44C3257B445CCF7A44F6D87A4460D10845D903000000000000
得到这样的表格

许多是这样做的,这取决于你的字符串的样子(它们是否总是有那么长的零序列,它是否总是可以被 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,在字符串中插入额外的值并在此之后使用 Words
编辑:
其他正则表达式方法:
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);