Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
22
Task/Multisplit/Python/multisplit-2.py
Normal file
22
Task/Multisplit/Python/multisplit-2.py
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
def multisplit(text, sep):
|
||||
lastmatch = i = 0
|
||||
matches = []
|
||||
while i < len(text):
|
||||
for j, s in enumerate(sep):
|
||||
if text[i:].startswith(s):
|
||||
if i > lastmatch:
|
||||
matches.append(text[lastmatch:i])
|
||||
matches.append((j, i)) # Replace the string containing the matched separator with a tuple of which separator and where in the string the match occured
|
||||
lastmatch = i + len(s)
|
||||
i += len(s)
|
||||
break
|
||||
else:
|
||||
i += 1
|
||||
if i > lastmatch:
|
||||
matches.append(text[lastmatch:i])
|
||||
return matches
|
||||
|
||||
>>> multisplit('a!===b=!=c', ['==', '!=', '='])
|
||||
['a', (1, 1), (0, 3), 'b', (2, 6), (1, 7), 'c']
|
||||
>>> multisplit('a!===b=!=c', ['!=', '==', '='])
|
||||
['a', (0, 1), (1, 3), 'b', (2, 6), (0, 7), 'c']
|
||||
Loading…
Add table
Add a link
Reference in a new issue