Có nhiều cách để bạn có thể tách một chuỗi hoặc chuỗi gồm nhiều dấu phân cách trong python. Cách tiếp cận dễ dàng và hiệu quả nhất là sử dụng phương thức split[], tuy nhiên, nó chỉ dùng để xử lý các trường hợp đơn giản
re.split[] is more flexible than the normal `split[]` method in handling complex string scenarios.
Voi lai. split[] bạn có thể chỉ định nhiều mẫu cho dấu tách. Như được hiển thị trong giải pháp, dấu phân cách là dấu gạch nối [-] hoặc khoảng trắng [ ] hoặc dấu phẩy [,] theo sau các giá trị. Tài liệu biểu thức chính quy có thể được tìm thấy ở đây
Bất cứ khi nào mẫu đó được tìm thấy, toàn bộ kết quả khớp sẽ trở thành dấu phân cách giữa các trường ở hai bên của kết quả khớp
Phương thức chuỗi
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
2 của Python cho phép một chuỗi dễ dàng được chia thành một danh sách dựa trên dấu phân cách. Mặc dù trong một số trường hợp, bạn có thể cần phân tách dựa trên không chỉ một mà nhiều giá trị dấu phân cách. Bài viết 101 nhanh này giới thiệu hai cách tiếp cận thuận tiện mà điều này có thể đạt được trong PythonTách chuỗi với hai dấu phân cách trong Python
Giả sử chuỗi sau
text = "python is, an easy;language; to, learn."
Ví dụ của chúng tôi, chúng tôi cần tách nó bằng dấu chấm phẩy theo sau là khoảng trắng
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
3 hoặc bằng dấu phẩy theo sau là khoảng trắng import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
4. Trong trường hợp này, bất kỳ sự xuất hiện nào của dấu chấm phẩy hoặc dấu phẩy. e. import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
4 , import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
3 không có dấu cách thì không cần quan tâmBiểu thức chính quy
Mặc dù việc sử dụng các biểu thức chính quy thường bị phản đối do tính chất khá tốn kém của nó khi phân tích chuỗi, nhưng nó có thể được đảm bảo một cách an toàn trong tình huống như thế này
Sử dụng biểu thức cơ bản
Mô-đun tích hợp sẵn của Python
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
7 có một phương thức import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
2 mà chúng ta có thể sử dụng cho trường hợp nàyHãy sử dụng biểu thức chính quy a hoặc b cơ bản [
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
9] để phân tách nhiều dấu phân cách của chúng taimport re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
đầu ra
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
1Như đã đề cập trên trang Wikipedia, Biểu thức chính quy sử dụng IEEE POSIX làm tiêu chuẩn cho cú pháp của nó. Bằng cách tham khảo tiêu chuẩn này, chúng tôi có thể quản lý một số cách bổ sung mà chúng tôi có thể thực hiện để viết một biểu thức chính quy phù hợp với trường hợp sử dụng của chúng tôi
Thay vì sử dụng dấu tách thanh [
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
10] để xác định dấu phân cách, chúng ta có thể đạt được kết quả tương tự bằng cách sử dụng cú pháp Phạm vi [import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
11] được cung cấp trong Biểu thức chính quy. Bạn có thể xác định phạm vi ký tự mà biểu thức chính quy có thể khớp bằng cách cung cấp chúng trong dấu ngoặc vuôngDo đó, khi chỉ định mẫu của biểu thức chính quy, chúng ta có thể chỉ cần cung cấp dấu chấm phẩy và dấu phẩy trong dấu ngoặc vuông và khoảng trắng bổ sung
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
12, điều này sẽ dẫn đến biểu thức chính quy được so khớp bởi các phần của chuỗi có chính xác [dấu chấm phẩy OR dấu phẩy] và một import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
5Biến nó thành một chức năng
Biểu thức cơ bản được đề cập trước đó được giới hạn trong một tập hợp các dấu phân cách được mã hóa cứng. Điều này sau này có thể dẫn đến rắc rối khi sửa đổi dấu phân cách xảy ra và cũng hạn chế khả năng sử dụng lại của nó trên các phần khác của mã. Do đó, tốt hơn là sử dụng các phương pháp hay nhất để xem xét làm cho mã trở nên chung chung hơn và có thể tái sử dụng. Do đó, hãy viết mã logic đó cho một hàm Python để đảm bảo an toàn cho chúng ta
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
6Sử dụng hàm chuỗi
Trong trường hợp bạn muốn hạn chế sử dụng Biểu thức chính quy hoặc không cần giới thiệu các mô-đun mới cho dự án chỉ vì mục đích tách chuỗi, bạn có thể sử dụng các phương thức
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
13 và import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
2 có trong chính mô-đun chuỗi theo một cách khó hiểu để import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
9Trước hết, ở đây, chúng tôi thay thế tất cả các lần xuất hiện của dấu chấm phẩy theo sau là khoảng trắng
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
15 trong chuỗi bằng dấu phân cách khác của chúng tôi là dấu phẩy theo sau là khoảng trắng import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
16. Bằng cách này, chúng ta có thể giới hạn việc tách chuỗi chỉ bằng một dấu phân cách, đó là dấu phẩy theo sau bởi khoảng trắng import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
16 trong trường hợp nàyBây giờ chúng ta có thể tách chuỗi đã sửa đổi đó một cách an toàn bằng cách sử dụng hàm
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
2 đơn giản được cung cấp sẵn bởi mô-đun chuỗi Python để mang lại kết quả tương tựLưu ý rằng chúng tôi chưa nhập bất kỳ mô-đun mới nào vào mã lần này để đạt được kết quả
Tách chuỗi với nhiều dấu phân cách trong Python
Hãy xem xét các văn bản được đề cập dưới đây
text = "python is, an easy;language; to, learn."
4Đối với ví dụ này, chúng ta cần tách nó trên tất cả các trường hợp văn bản có bất kỳ ký tự nào
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
19 theo sau là khoảng trắngBiểu thức chính quy
Trong trường hợp này, chúng ta có thể dễ dàng thêm các dấu phân cách bổ sung khi xác định biểu thức chính quy của mình
text = "python is, an easy;language; to, learn."
6đầu ra
text = "python is, an easy;language; to, learn."
7như một chức năng
Cũng trong tình huống này, chúng ta có thể chỉ cần sử dụng cùng mã mà chúng ta đã sử dụng trước đó với hai dấu phân cách với một thay đổi đơn giản là thêm tất cả các dấu phân cách bổ sung vào biến
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
50text = "python is, an easy;language; to, learn."
9Sử dụng hàm chuỗi
Tương tự như cách chúng ta xử lý trước đây với hai dấu phân cách, chúng ta cũng có thể sử dụng các hàm
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
13 và import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
2 để xử lý vấn đề nàyimport re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
0đầu ra
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
1Cần lưu ý rằng phương pháp này không được khuyến nghị khi được sử dụng cho số lượng dấu phân cách cao hơn, chẳng hạn như trong trường hợp này. Vì trong trường hợp này, phương thức chuỗi
import re
text = "python is, an easy;language; to, learn."
print[re.split['; |, ', text]]
13 sẽ phải được sử dụng nhiều lần để thực hiện nhiều lần duyệt trên chuỗi, nên cuối cùng nó sẽ gây ra các đột biến hiệu suất không mong muốn có thể dễ dàng tránh được bằng cách sử dụng Biểu thức chính quy