Multisplit: Difference between revisions

Content deleted Content added
No edit summary
→‎{{header|Python}}: Add RE version
Line 48: Line 48:


=={{header|Python}}==
=={{header|Python}}==
===Using Regular expressions===
<lang python>>>> import re
>>> def ms2(txt="a!===b=!=c", sep=["==", "!=", "="]):
ans = []
for m in re.finditer('(.*?)(?:' + '|'.join('('+re.escape(s)+')' for s in sep) + ')', txt):
ans += [m.group(1), (m.lastindex-2, m.start(m.lastindex))]
if txt[m.end(m.lastindex):]:
ans += [txt[m.end(m.lastindex):]]
return ans

>>> ms2()
['a', (1, 1), '', (0, 3), 'b', (2, 6), '', (1, 7), 'c']
>>> ms2(txt="a!===b=!=c", sep=["=", "!=", "=="])
['a', (1, 1), '', (0, 3), '', (0, 4), 'b', (0, 6), '', (1, 7), 'c']</lang>

===Not using RE's===
<lang python>>>> def ms(txt="a!===b=!=c", sep=["==", "!=", "="]):
<lang python>>>> def ms(txt="a!===b=!=c", sep=["==", "!=", "="]):
size = [len(s) for s in sep]
size = [len(s) for s in sep]