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] |