Hướng dẫn can you have two delimiters in python? - bạn có thể có hai dấu phân cách trong python không?

Đây là một cách an toàn cho bất kỳ người phân trang nào, sử dụng các biểu thức thông thường:

>>> 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 cho phép xây dựng mô hình tự động và để các dấu phân cách thoát ra một cách độc đáo.

Đây là giải pháp này là một chức năng cho niềm vui sao chép của bạn:

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

Nếu bạn sẽ chia tách thường xuyên bằng cách sử dụng cùng một dấu phân cách, hãy biên dịch biểu thức thông thường của bạn trước như được mô tả và sử dụng

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

Nếu bạn muốn để các dấu phân cách ban đầu trong chuỗi, bạn có thể thay đổi Regex để sử dụng khẳng định Lookbehind thay thế: thay vào đó:

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

Bài Viết Liên Quan

Chủ Đề