(phixonline)-->
with javascript_semantics
procedure multisplit(string text, sequence delims)
integer k = 1, kdx
while true 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],
delim = iff(kmin=0?"":sprintf(", delimiter (%s) at %d",{delims[kdx],kmin}))
printf(1,"Token: [%s] at %d%s\n",{token,k,delim})
if kmin=0 then exit end if
k = kmin+length(delims[kdx])
end while
end procedure
multisplit("a!===b=!=c",{"==","!=","="})