Hướng dẫn python array delimiter

Here's a safe way for any iterable of delimiters, using regular expressions:

>>> import re
>>> delimiters = "a", "...", "[c]"
>>> example = "stackoverflow [c] is awesome... isn't it?"
>>> regex_pattern = '|'.join[map[re.escape, delimiters]]
>>> regex_pattern
'a|\\.\\.\\.|\\[c\\]'
>>> re.split[regex_pattern, example]
['st', 'ckoverflow ', ' is ', 'wesome', " isn't it?"]

re.escape allows to build the pattern automatically and have the delimiters escaped nicely.

Here's this solution as a function for your copy-pasting pleasure:

def split[delimiters, string, maxsplit=0]:
    import re
    regex_pattern = '|'.join[map[re.escape, delimiters]]
    return re.split[regex_pattern, string, maxsplit]

If you're going to split often using the same delimiters, compile your regular expression beforehand like described and use RegexObject.split.

If you'd like to leave the original delimiters in the string, you can change the regex to use a lookbehind assertion instead:

>>> import re
>>> delimiters = "a", "...", "[c]"
>>> example = "stackoverflow [c] is awesome... isn't it?"
>>> regex_pattern = '|'.join['[?

Chủ Đề