25 lines
724 B
Plaintext
25 lines
724 B
Plaintext
procedure multisplit(string text, sequence delims)
|
|
integer k = 1, kdx
|
|
while 1 do
|
|
integer kmin = 0
|
|
for i=1 to length(delims) do
|
|
integer ki = match(delims[i],text,k)
|
|
if ki!=0 then
|
|
if kmin=0 or ki<kmin then
|
|
kmin = ki
|
|
kdx = i
|
|
end if
|
|
end if
|
|
end for
|
|
string token = text[k..kmin-1]
|
|
if kmin=0 then
|
|
printf(1,"Token: [%s] at %d\n",{token,k})
|
|
exit
|
|
end if
|
|
printf(1,"Token: [%s] at %d, delimiter (%s) at %d\n",{token,k,delims[kdx],kmin})
|
|
k = kmin+length(delims[kdx])
|
|
end while
|
|
end procedure
|
|
|
|
multisplit("a!===b=!=c",{"==","!=","="})
|