22 lines
546 B
Text
22 lines
546 B
Text
|
|
F multisplit(text, sep)
|
|||
|
|
V lastmatch = 0
|
|||
|
|
V i = 0
|
|||
|
|
V matches = ‘’
|
|||
|
|
L i < text.len
|
|||
|
|
L(s) sep
|
|||
|
|
V j = L.index
|
|||
|
|
I text[i..].starts_with(s)
|
|||
|
|
I i > lastmatch
|
|||
|
|
matches ‘’= text[lastmatch .< i]
|
|||
|
|
matches ‘’= ‘{’s‘}’
|
|||
|
|
lastmatch = i + s.len
|
|||
|
|
i += s.len
|
|||
|
|
L.break
|
|||
|
|
L.was_no_break
|
|||
|
|
i++
|
|||
|
|
I i > lastmatch
|
|||
|
|
matches ‘’= text[lastmatch .< i]
|
|||
|
|
R matches
|
|||
|
|
|
|||
|
|
print(multisplit(‘a!===b=!=c’, [‘==’, ‘!=’, ‘=’]))
|