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
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
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áchNế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 nhauMộ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ỗiChỉ đị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']
3s_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']
4Nế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
3s_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ỗiKế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 raTươ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']
5print(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 đườngNhư 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']
3Tuy nhiên, thường tốt hơn là sử dụng
print(s_comma.split(',', 2))
# ['one', 'two', 'three,four,five']
6Ví 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áchprint(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òngprint(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ács_comma = 'one,two,three,four,five'
print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']
print(s_comma.split('three'))
# ['one,two,', ',four,five']
0nguồ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òngs_comma = 'one,two,three,four,five'
print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']
print(s_comma.split('three'))
# ['one,two,', ',four,five']
1nguồ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ànNế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 reTrong
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ứ haiMộ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']
2nguồ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']
4s_comma = 'one,two,three,four,five'
print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']
print(s_comma.split('three'))
# ['one,two,', ',four,five']
3nguồ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 nhaus_comma = 'one,two,three,four,five'
print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']
print(s_comma.split('three'))
# ['one,two,', ',four,five']
4nguồ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 nhaus_comma = 'one,two,three,four,five'
print(s_comma.split(','))
# ['one', 'two', 'three', 'four', 'five']
print(s_comma.split('three'))
# ['one,two,', ',four,five']
5nguồ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
2Gọ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']
6nguồ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']
7nguồ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']
8nguồ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']
9nguồ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.