Hướng dẫn python split merge delimiters - dấu phân cách hợp nhất phân tách python

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

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

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['[?

Bài Viết Liên Quan

Chủ Đề