September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
24
Task/Multisplit/Phix/multisplit.phix
Normal file
24
Task/Multisplit/Phix/multisplit.phix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
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",{"==","!=","="})
|
||||
Loading…
Add table
Add a link
Reference in a new issue