Chia lại Python

Các lớp bao gồm một tập hợp các ký tự được gọi là các lớp biểu thức chính quy. Một trong các lớp này, d, khớp với bất kỳ chữ số thập phân nào, sẽ được sử dụng. Học cách phân chia dữ liệu có thể có giá trị. Dữ liệu đến ở nhiều loại và kích cỡ khác nhau và đôi khi dữ liệu không sạch như chúng tôi mong muốn. Bạn thường muốn chia một chuỗi cho nhiều hơn một dấu phân cách để dễ xử lý hơn. Thư viện biểu thức chính quy tích hợp lại là cách dễ nhất để chia chuỗi. Thư viện có một. split() hoạt động tương tự như ví dụ trên. Cách tiếp cận này nổi bật vì nó cho phép bạn tách các chuỗi của chúng tôi bằng các biểu thức chính quy. Bài viết này hướng dẫn bạn cách chia chuỗi Python bằng một số dấu phân cách. Cả hai tích hợp. split() thủ tục và biểu thức chính quy tích hợp lại. split() chức năng được sử dụng để thực hiện điều này

Sử dụng cái nhìn tiêu cực về phía trước và cái nhìn tiêu cực về phía sau

> s = "one two 3.4 5,6 seven.eight nine,ten"
> parts = re.split('\s|(?

In other words, you always split by \s (khoảng trắng) và chỉ được phân tách bằng dấu phẩy và dấu chấm nếu chúng không được theo sau (?!\d) hoặc đứng trước (? by a digit.

_______ 87 _______ thành _______ 88 _______

THỬ NGHIỆM

Phương thức .split() của mô-đun re chia một chuỗi thành các chuỗi con ở mỗi lần xuất hiện của (các) ký tự được chỉ định. Phương thức này là một giải pháp thay thế tốt cho phương thức chuỗi .split() mặc định đối với các trường hợp yêu cầu khớp nhiều ký tự

re.split(, string, , )

Một là một biểu thức chính quy có thể bao gồm bất kỳ điều nào sau đây

  • Một chuỗi. Jane Smith
  • Mã lớp ký tự. /w, /s , /d
  • Một biểu tượng regex.

    race_info = '''The top three race finishers were: Jane Smith (2:14), Sarah Long (2:18) and Suzy Reynolds (2:20).'''

    re.split(r"\(|\)", race_info)

    0,

    race_info = '''The top three race finishers were: Jane Smith (2:14), Sarah Long (2:18) and Suzy Reynolds (2:20).'''

    re.split(r"\(|\)", race_info)

    1,

    race_info = '''The top three race finishers were: Jane Smith (2:14), Sarah Long (2:18) and Suzy Reynolds (2:20).'''

    re.split(r"\(|\)", race_info)

    2

Các đối số khác bao gồm

  • Một số nguyên cho số lần phân chia tối đa (phân chia tối đa).

    race_info = '''The top three race finishers were: Jane Smith (2:14), Sarah Long (2:18) and Suzy Reynolds (2:20).'''

    re.split(r"\(|\)", race_info)

    3
  • cờ.

    race_info = '''The top three race finishers were: Jane Smith (2:14), Sarah Long (2:18) and Suzy Reynolds (2:20).'''

    re.split(r"\(|\)", race_info)

    4,

    race_info = '''The top three race finishers were: Jane Smith (2:14), Sarah Long (2:18) and Suzy Reynolds (2:20).'''

    re.split(r"\(|\)", race_info)

    5,

    race_info = '''The top three race finishers were: Jane Smith (2:14), Sarah Long (2:18) and Suzy Reynolds (2:20).'''

    re.split(r"\(|\)", race_info)

    6

Ví dụ sau tách văn bản ở mỗi dấu ngoặc đơn

race_info = '''The top three race finishers were: Jane Smith (2:14), Sarah Long (2:18) and Suzy Reynolds (2:20).'''

re.split(r"\(|\)", race_info)

người đóng góp

  1. Chia lại Python

Quan tâm đến việc giúp xây dựng Tài liệu?

Học Python trên Codecademy

Bài viết này mô tả cách tách chuỗi bằng dấu phân cách, ngắt dòng, biểu thức chính quy và số lượng ký tự trong Python

  • Chia theo dấu phân cách.
    print(s_comma.split(',', 2))
    # ['one', 'two', 'three,four,five']
    
    2
    • Chỉ định dấu phân cách.
      print(s_comma.split(',', 2))
      # ['one', 'two', 'three,four,five']
      
      3
    • Chỉ định số lần chia tối đa.
      print(s_comma.split(',', 2))
      # ['one', 'two', 'three,four,five']
      
      4
  • Tách từ bên phải bởi dấu phân cách.
    print(s_comma.split(',', 2))
    # ['one', 'two', 'three,four,five']
    
    5
  • Chia theo ngắt dòng.
    print(s_comma.split(',', 2))
    # ['one', 'two', 'three,four,five']
    
    6
  • Chia theo regex.
    print(s_comma.split(',', 2))
    # ['one', 'two', 'three,four,five']
    
    7
    • Chia theo nhiều dấu phân cách khác nhau
  • Nối một danh sách các chuỗi
  • Tách dựa trên số lượng ký tự. lát cắt

Xem bài viết sau để biết thêm thông tin về cách nối và trích xuất chuỗi

  • Nối các chuỗi trong Python (toán tử +, nối, v.v. )
  • Trích xuất một chuỗi con từ một chuỗi trong Python (vị trí, biểu thức chính quy)

Liên kết được tài trợ

Chia theo dấu phân cách. print(s_comma.split(',', 2)) # ['one', 'two', 'three,four,five'] 2

Sử dụng phương pháp

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
2 để phân tách bằng dấu phân cách

Nếu đối số bị bỏ qua, nó sẽ bị phân chia bởi khoảng trắng, chẳng hạn như dấu cách, dòng mới

s_lines = 'one\ntwo\nthree\nfour'
print(s_lines)
# one
# two
# three
# four

print(s_lines.split('\n', 1))
# ['one', 'two\nthree\nfour']

print(s_lines.split('\n', 1)[0])
# one

print(s_lines.split('\n', 1)[1])
# two
# three
# four

print(s_lines.split('\n', 1)[-1])
# two
# three
# four
0 và tab
s_lines = 'one\ntwo\nthree\nfour'
print(s_lines)
# one
# two
# three
# four

print(s_lines.split('\n', 1))
# ['one', 'two\nthree\nfour']

print(s_lines.split('\n', 1)[0])
# one

print(s_lines.split('\n', 1)[1])
# two
# three
# four

print(s_lines.split('\n', 1)[-1])
# two
# three
# four
1. Khoảng trắng liên tiếp được xử lý cùng nhau

Một danh sách các từ được trả về

s_blank = 'one two     three\nfour\tfive'
print(s_blank)
# one two     three
# four  five

print(s_blank.split())
# ['one', 'two', 'three', 'four', 'five']

print(type(s_blank.split()))
# <class 'list'>

nguồn.

Sử dụng

s_lines = 'one\ntwo\nthree\nfour'
print(s_lines)
# one
# two
# three
# four

print(s_lines.split('\n', 1))
# ['one', 'two\nthree\nfour']

print(s_lines.split('\n', 1)[0])
# one

print(s_lines.split('\n', 1)[1])
# two
# three
# four

print(s_lines.split('\n', 1)[-1])
# two
# three
# four
2, được mô tả bên dưới, để nối một danh sách thành một chuỗi

Chỉ định dấu phân cách. print(s_comma.split(',', 2)) # ['one', 'two', 'three,four,five'] 3

Chỉ định dấu phân cách cho tham số đầu tiên

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
3

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']

nguồn.

Nếu bạn muốn chỉ định nhiều dấu phân cách, hãy sử dụng biểu thức chính quy như được mô tả sau

Chỉ định số lần chia tối đa. print(s_comma.split(',', 2)) # ['one', 'two', 'three,four,five'] 4

Chỉ định số lần phân tách tối đa cho tham số thứ hai

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
4

Nếu cho trước _______10_______4 thì nhiều nhất ___10_______4 phép chia được thực hiện

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']

nguồn.

Ví dụ: rất hữu ích khi xóa dòng đầu tiên khỏi chuỗi

Nếu

s_lines = 'one\ntwo\nthree\nfour'
print(s_lines)
# one
# two
# three
# four

print(s_lines.split('\n', 1))
# ['one', 'two\nthree\nfour']

print(s_lines.split('\n', 1)[0])
# one

print(s_lines.split('\n', 1)[1])
# two
# three
# four

print(s_lines.split('\n', 1)[-1])
# two
# three
# four
9,
print(s_lines.split('\n', 2)[-1])
# three
# four
0, bạn có thể nhận danh sách các chuỗi được phân chia theo ký tự xuống dòng đầu tiên
s_lines = 'one\ntwo\nthree\nfour'
print(s_lines)
# one
# two
# three
# four

print(s_lines.split('\n', 1))
# ['one', 'two\nthree\nfour']

print(s_lines.split('\n', 1)[0])
# one

print(s_lines.split('\n', 1)[1])
# two
# three
# four

print(s_lines.split('\n', 1)[-1])
# two
# three
# four
0. Phần tử thứ hai
print(s_lines.split('\n', 2)[-1])
# three
# four
2 của danh sách này là một chuỗi không bao gồm dòng đầu tiên. Vì nó là phần tử cuối cùng nên nó có thể được chỉ định là
print(s_lines.split('\n', 2)[-1])
# three
# four
3

s_lines = 'one\ntwo\nthree\nfour'
print(s_lines)
# one
# two
# three
# four

print(s_lines.split('\n', 1))
# ['one', 'two\nthree\nfour']

print(s_lines.split('\n', 1)[0])
# one

print(s_lines.split('\n', 1)[1])
# two
# three
# four

print(s_lines.split('\n', 1)[-1])
# two
# three
# four

nguồn.

Tương tự, để xóa hai dòng đầu tiên

print(s_lines.split('\n', 2)[-1])
# three
# four

nguồn.

Tách từ bên phải bởi dấu phân cách. print(s_comma.split(',', 2)) # ['one', 'two', 'three,four,five'] 5

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
5 tách từ bên phải của chuỗi

Kết quả chỉ khác với

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
2 khi tham số thứ hai
print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
4 được đưa ra

Tương tự như

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
2, nếu bạn muốn xóa dòng cuối cùng, hãy sử dụng
print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
5

print(s_lines.rsplit('\n', 1))
# ['one\ntwo\nthree', 'four']

print(s_lines.rsplit('\n', 1)[0])
# one
# two
# three

print(s_lines.rsplit('\n', 1)[1])
# four

nguồn.

Để xóa hai dòng cuối cùng

print(s_lines.rsplit('\n', 2)[0])
# one
# two

nguồn.

Chia theo ngắt dòng. print(s_comma.split(',', 2)) # ['one', 'two', 'three,four,five'] 6

Ngoài ra còn có một

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
6 để phân chia theo ranh giới đường

Như trong các ví dụ trước,

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
2 và
print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
5 được phân chia theo mặc định với khoảng trắng bao gồm ngắt dòng và bạn cũng có thể chỉ định ngắt dòng với tham số
print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
3

Tuy nhiên, thường tốt hơn là sử dụng

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
6

Ví dụ: chuỗi tách có chứa

s_lines = 'one\ntwo\nthree\nfour'
print(s_lines)
# one
# two
# three
# four

print(s_lines.split('\n', 1))
# ['one', 'two\nthree\nfour']

print(s_lines.split('\n', 1)[0])
# one

print(s_lines.split('\n', 1)[1])
# two
# three
# four

print(s_lines.split('\n', 1)[-1])
# two
# three
# four
0 (LF, được sử dụng trong Hệ điều hành Unix bao gồm cả Mac) và
print(s_lines.rsplit('\n', 1))
# ['one\ntwo\nthree', 'four']

print(s_lines.rsplit('\n', 1)[0])
# one
# two
# three

print(s_lines.rsplit('\n', 1)[1])
# four
7 (CR + LF, được sử dụng trong Hệ điều hành Windows)

s_lines_multi = '1 one\n2 two\r\n3 three\n'
print(s_lines_multi)
# 1 one
# 2 two
# 3 three

nguồn.

Khi áp dụng

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
2, theo mặc định, nó được phân tách không chỉ bởi dấu ngắt dòng mà còn bởi dấu cách

print(s_lines_multi.split())
# ['1', 'one', '2', 'two', '3', 'three']

nguồn.

Vì chỉ có một ký tự xuống dòng có thể được chỉ định trong

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
3, nó không thể được phân tách nếu có các ký tự xuống dòng hỗn hợp. Nó cũng được chia ở cuối ký tự xuống dòng

print(s_lines_multi.split('\n'))
# ['1 one', '2 two\r', '3 three', '']

nguồn.

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
6 phân tách ở các ký tự dòng mới khác nhau nhưng không phân tách ở các khoảng trắng khác

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
0

nguồn.

Nếu đối số đầu tiên,

print(s_lines.rsplit('\n', 2)[0])
# one
# two
1, được đặt thành
print(s_lines.rsplit('\n', 2)[0])
# one
# two
2, thì kết quả sẽ bao gồm một ký tự xuống dòng ở cuối dòng

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
1

nguồn.

Xem bài viết sau để biết các thao tác khác với ngắt dòng

  • Xử lý ngắt dòng (dòng mới) trong Python

Liên kết được tài trợ

Chia theo regex. print(s_comma.split(',', 2)) # ['one', 'two', 'three,four,five'] 7

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
2 và
print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
5 chỉ tách ra khi
print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
3 khớp hoàn toàn

Nếu bạn muốn tách một chuỗi khớp với biểu thức chính quy (regex) thay vì khớp hoàn hảo, hãy sử dụng

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
2 của mô-đun re

Trong

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
7, chỉ định mẫu biểu thức chính quy trong tham số đầu tiên và chuỗi ký tự đích trong tham số thứ hai

Một ví dụ về chia cho các số liên tiếp như sau

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
2

nguồn.

Số lần phân tách tối đa có thể được chỉ định trong tham số thứ ba,

print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
4

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
3

nguồn.

Chia theo nhiều dấu phân cách khác nhau

Hai điều sau đây rất hữu ích để ghi nhớ ngay cả khi bạn không quen thuộc với biểu thức chính quy

Kèm theo một chuỗi với

s_lines_multi = '1 one\n2 two\r\n3 three\n'
print(s_lines_multi)
# 1 one
# 2 two
# 3 three
0 để khớp với bất kỳ ký tự đơn nào trong đó. Bạn có thể tách chuỗi theo nhiều ký tự khác nhau

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
4

nguồn.

Nếu các mẫu được phân định bởi

s_lines_multi = '1 one\n2 two\r\n3 three\n'
print(s_lines_multi)
# 1 one
# 2 two
# 3 three
1, thì nó khớp với bất kỳ mẫu nào. Tất nhiên, có thể sử dụng các ký tự đặc biệt của biểu thức chính quy cho mỗi mẫu, nhưng cũng không sao ngay cả khi chuỗi bình thường được chỉ định như vậy. Bạn có thể chia theo nhiều chuỗi khác nhau

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
5

nguồn.

Nối một danh sách các chuỗi

Trong các ví dụ trước, bạn có thể tách chuỗi và lấy danh sách

Nếu bạn muốn nối một danh sách các chuỗi thành một chuỗi, hãy sử dụng phương thức chuỗi,

s_lines = 'one\ntwo\nthree\nfour'
print(s_lines)
# one
# two
# three
# four

print(s_lines.split('\n', 1))
# ['one', 'two\nthree\nfour']

print(s_lines.split('\n', 1)[0])
# one

print(s_lines.split('\n', 1)[1])
# two
# three
# four

print(s_lines.split('\n', 1)[-1])
# two
# three
# four
2

Gọi

s_lines = 'one\ntwo\nthree\nfour'
print(s_lines)
# one
# two
# three
# four

print(s_lines.split('\n', 1))
# ['one', 'two\nthree\nfour']

print(s_lines.split('\n', 1)[0])
# one

print(s_lines.split('\n', 1)[1])
# two
# three
# four

print(s_lines.split('\n', 1)[-1])
# two
# three
# four
2 từ
s_lines_multi = '1 one\n2 two\r\n3 three\n'
print(s_lines_multi)
# 1 one
# 2 two
# 3 three
4 và chuyển danh sách các chuỗi sẽ được nối với đối số

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
6

nguồn.

Xem bài viết sau để biết chi tiết về nối chuỗi

  • Nối các chuỗi trong Python (toán tử +, nối, v.v. )

Tách dựa trên số lượng ký tự. lát cắt

Sử dụng slice để tách chuỗi dựa trên số lượng ký tự

  • Cách cắt danh sách, chuỗi, tuple trong Python

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
7

nguồn.

Nó có thể được lấy dưới dạng một bộ hoặc được gán cho một biến tương ứng

  • Nhiều bài tập trong Python. Gán nhiều giá trị hoặc cùng một giá trị cho nhiều biến

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
8

nguồn.

Chia thành ba

s_comma = 'one,two,three,four,five'

print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']

print(s_comma.split('three'))
# ['one,two,', ',four,five']
9

nguồn.

Số lượng ký tự có thể được lấy bằng chức năng tích hợp sẵn

s_lines_multi = '1 one\n2 two\r\n3 three\n'
print(s_lines_multi)
# 1 one
# 2 two
# 3 three
5. Nó cũng có thể được chia thành hai nửa bằng cách sử dụng này

chia lại () trong Python là gì?

Các. split() của mô-đun re chia một chuỗi thành các chuỗi con ở mỗi lần xuất hiện của (các) ký tự được chỉ định . Phương pháp này là một thay thế tốt cho mặc định. split() phương thức chuỗi cho các trường hợp yêu cầu khớp nhiều ký tự.

\r trong Python regex là gì?

Chữ 'r' ở đầu chuỗi mẫu chỉ định chuỗi "thô" của trăn đi qua các dấu gạch chéo ngược mà không thay đổi , điều này rất . ).

Làm cách nào để tách regex trên mẫu Python?

Nếu bạn muốn tách một chuỗi khớp với biểu thức chính quy (regex) thay vì khớp hoàn hảo, hãy sử dụng hàm split() của mô-đun re. In re. split() , specify the regex pattern in the first parameter and the target character string in the second parameter.