Hướng dẫn python split string multiple delimiters - python tách chuỗi nhiều dấu phân cách

Đâ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('(?<={})'.format(re.escape(delim)) for delim in delimiters)
>>> regex_pattern
'(?<=a)|(?<=\\.\\.\\.)|(?<=\\(c\\))'
>>> re.split(regex_pattern, example)
['sta', 'ckoverflow (c)', ' is a', 'wesome...', " isn't it?"]

(Thay thế

def split(delimiters, string, maxsplit=0):
    import re
    regex_pattern = '|'.join(map(re.escape, delimiters))
    return re.split(regex_pattern, string, maxsplit)
2 bằng
def split(delimiters, string, maxsplit=0):
    import re
    regex_pattern = '|'.join(map(re.escape, delimiters))
    return re.split(regex_pattern, string, maxsplit)
3 để gắn các dấu phân cách vào phía bên tay, thay vì bên trái)

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để phân chia một chuỗi trên nhiều dấu phân cách. Bạn sẽ học cách thực hiện việc này với Thư viện biểu thức thường xuyên tích hợp & nbsp; ________ 14 & nbsp; cũng như với chuỗi tích hợp & nbsp; ________ 15 & nbsp;

Nhưng tại sao thậm chí học cách phân chia dữ liệu? Tách dữ liệu có thể là một kỹ năng vô cùng hữu ích để học. Dữ liệu có tất cả các hình dạng và nó thường không sạch sẽ như chúng ta muốn. Sẽ có nhiều lần khi bạn muốn chia một chuỗi bởi nhiều trình phân cách để làm cho nó dễ dàng hơn để làm việc.

Bây giờ, hãy bắt đâù!

  • Làm thế nào để bạn chia một chuỗi trong Python?
  • Chia một chuỗi python trên nhiều trình phân cách bằng cách sử dụng các biểu thức thông thường
  • Chia một chuỗi python trên nhiều trình phân cách bằng cách sử dụng Chuỗi Chia
  • Tạo một hàm để phân chia chuỗi python với nhiều trình phân cách
  • Sự kết luận

Làm thế nào để bạn chia một chuỗi trong Python?

Chia một chuỗi python trên nhiều trình phân cách bằng cách sử dụng các biểu thức thông thường

Phương pháp trông như thế này:

string.split(seperator, maxsplit)

Trong phương pháp này,::

  • SEPERATOR: Đối số chấp nhận những gì nhân vật để chia tay. Nếu không có đối số nào được cung cấp, nó sử dụng bất kỳ khoảng trắng nào để chia.: argument accepts what character to split on. If no argument is provided, it uses any whitespace to split.
  • MAXSplit: Số lượng phân tách cần thực hiện, trong đó giá trị mặc định là & nbsp; ____ 17, có nghĩa là tất cả các lần xuất hiện được phân chia.: the number of splits to do, where the default value is 
    def split(delimiters, string, maxsplit=0):
        import re
        regex_pattern = '|'.join(map(re.escape, delimiters))
        return re.split(regex_pattern, string, maxsplit)
    
    7, meaning that all occurrences are split.

Hãy nói rằng bạn có một chuỗi mà bạn muốn chia bằng dấu phẩy - hãy để Lừa học cách làm điều này:

sample_string = 'my name is nik, welcome to datagy'
split_string = sample_string.split(',')

print(split_string)

# Returns: ['my name is nik', ' welcome to datagy']

Chúng ta có thể thấy ở đây rằng những gì mà trả về là một danh sách chứa tất cả các giá trị mới chia.

Kiểm tra một số hướng dẫn Python khác về DataGy, bao gồm hướng dẫn đầy đủ của chúng tôi về Gấu trúc kiểu dáng và tổng quan toàn diện của chúng tôi về các bảng xoay vòng trong gấu trúc!

Chia một chuỗi python trên nhiều trình phân cách bằng cách sử dụng các biểu thức thông thường

Cách trực quan nhất để phân chia chuỗi là sử dụng thư viện biểu thức chính quy tích hợp & nbsp; ________ 14. Thư viện có phương thức tích hợp trong & nbsp; ____ 15 & nbsp; tương tự như ví dụ được đề cập ở trên. Điều độc đáo của phương pháp này là nó cho phép bạn sử dụng các biểu thức thông thường để phân chia chuỗi của chúng tôi.

Hãy cùng xem phương pháp này trông như thế nào:

re.split(pattern, string, maxsplit=0, flags=0)

Tương tự như ví dụ trên, đối số & nbsp; ____ 20 & nbsp; cho phép chúng tôi đặt tần suất một chuỗi nên được chia. Nếu nó được đặt thành bất kỳ số khác không tích cực, thì nó sẽ chỉ chia số lần đó.

Vì vậy, hãy để lặp lại ví dụ trước đó của chúng tôi với & nbsp; ________ 14 & nbsp; mô -đun:

import re

sample_string = 'my name is nik, welcome to datagy'
split_string = re.split(',', sample_string)

print(split_string)

# Returns: ['my name is nik', ' welcome to datagy']

Bây giờ, giả sử bạn có một chuỗi có nhiều dấu phân cách. Phương thức & nbsp; ____ 14 & nbsp; giúp bạn dễ dàng phân chia chuỗi này!

Hãy cùng xem một ví dụ khác:

import re

sample_string = 'hi! my name is nik, welcome; to datagy'
split_string = re.split(r',|!|;', sample_string)

print(split_string)

# Returns: ['hi', ' my name is nik', ' welcome', ' to datagy']

Những gì chúng tôi đã thực hiện ở đây được thông qua trong một chuỗi thô mà & nbsp; ________ 14 & nbsp; giúp giải thích. Chúng tôi vượt qua ký tự ống & nbsp; ________ 24 & nbsp; như một & nbsp; ________ 25 & nbsp; câu lệnh.

Chúng ta có thể đơn giản hóa điều này hơn nữa bằng cách truyền trong một bộ sưu tập biểu thức thông thường. Hãy để xem cách chúng ta có thể làm điều này:

import re

sample_string = 'hi! my name is nik, welcome; to datagy'
split_string = re.split(r'[,;!]', sample_string)

print(split_string)

# Returns: ['hi', ' my name is nik', ' welcome', ' to datagy']

Điều này trả về điều tương tự như trước đây, nhưng nó có một chút sạch hơn để viết và đọc.

Bạn cũng có thể tránh sử dụng & nbsp; ____ 14 & nbsp; hoàn toàn mô -đun. Mô -đun có thể hơi đáng sợ, vì vậy nếu bạn thoải mái hơn, bạn cũng có thể hoàn thành điều này mà không cần mô -đun.

Trong ví dụ dưới đây, bạn sẽ học cách phân chia chuỗi Python với nhiều trình phân cách bằng cách thay thế các giá trị trước tiên. Chúng tôi sẽ lấy chuỗi mới của chúng tôi và thay thế tất cả các trình phân cách để trở thành một dấu phân cách nhất quán. Hãy để một cái nhìn:

sample_string = 'hi! my name is nik, welcome; to datagy'

new_string = sample_string.replace('!', ',').replace(';', ',')
split_string = new_string.split(',')

print(split_string)

# Returns: ['hi', ' my name is nik', ' welcome', ' to datagy']

Phương pháp này hoạt động tốt khi bạn có một số lượng nhỏ các trình phân cách, nhưng nó nhanh chóng trở nên lộn xộn khi bạn có nhiều hơn 2 hoặc 3 trình phân cách mà bạn muốn chia chuỗi của mình. Nó tốt hơn để gắn bó với mô -đun & nbsp; ____ 14 & nbsp; để chia tách phức tạp hơn.

Tạo một hàm để phân chia chuỗi python với nhiều trình phân cách

Cuối cùng, hãy để Lừa xem cách phân tách một chuỗi bằng một hàm. Đối với chức năng này, chúng tôi sẽ sử dụng mô -đun & nbsp; ____ 14 & nbsp; Bạn có thể vượt qua trong một danh sách các dấu phân cách và một chuỗi và có một chuỗi phân chia được trả về.

Bắt đầu nào!

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

Sự kết luận

Trong bài đăng này, bạn đã học được cách chia chuỗi Python bằng nhiều trình phân cách. Bạn đã học cách thực hiện việc này bằng cách sử dụng phương thức tích hợp & nbsp;

Để tìm hiểu thêm về việc chia các chuỗi python, hãy xem tài liệu & nbsp; ____ 15 & nbsp; phương thức tại đây. Để tìm hiểu thêm về việc chia các chuỗi với & nbsp; ____ 14, hãy xem & nbsp; tài liệu chính thức ở đây.

Bạn có thể chia một chuỗi với nhiều dấu phân cách trong Python không?

Để phân chia một chuỗi với nhiều phương thức DELIMITER: split (), ví dụ: lại. chia (r ', |-', my_str_2). Ở đó. Phương thức chia () sẽ phân chia chuỗi trên tất cả các lần xuất hiện của một trong các dấu phân cách.split() method, e.g. re. split(r',|-', my_str_2) . The re. split() method will split the string on all occurrences of one of the delimiters.

Có thể chia () lấy 2 đối số?

Phương thức chia () chấp nhận hai đối số.Đối số tùy chọn đầu tiên là dấu phân cách, chỉ định loại phân tách nào sẽ sử dụng để phân tách chuỗi.Nếu đối số này không được cung cấp, giá trị mặc định là bất kỳ khoảng trắng nào, có nghĩa là chuỗi sẽ phân chia bất cứ khi nào.. The first optional argument is separator , which specifies what kind of separator to use for splitting the string. If this argument is not provided, the default value is any whitespace, meaning the string will split whenever .

Delimiter liên trường trong Python là gì?

LƯU Ý: Một dấu phân cách là một chuỗi của một hoặc nhiều ký tự được sử dụng để chỉ định ranh giới giữa các vùng riêng biệt, độc lập trong văn bản thuần túy hoặc các luồng dữ liệu khác.Một ví dụ về dấu phân cách là ký tự dấu phẩy, hoạt động như một dấu phân cách trường trong một chuỗi các giá trị được phân tách bằng dấu phẩy.a sequence of one or more characters used to specify the boundary between separate, independent regions in plain text or other data streams. An example of a delimiter is the comma character, which acts as a field delimiter in a sequence of comma-separated values.

Điều nào sau đây là một dấu phân cách hợp lệ để chia các chuỗi trong Python?

Chức năng phân chia được triển khai với \ n, là dấu phân cách.Bất cứ khi nào hàm nhìn thấy một ký tự mới, nó sẽ tách chuỗi thành chuỗi con.Bạn cũng có thể thực hiện Split bởi ký tự mới với sự trợ giúp của hàm splitlines ().\n” as the separator. Whenever the function sees a newline character, it separates the string into substrings. You can also perform split by newline character with the help of the splitlines() function.