Tách Python so với tách lại
Tôi luôn ngạc nhiên về cách các biểu thức chính quy tồn tại sau bảy thập kỷ gián đoạn công nghệ. Họ trông giống như 70 năm trước. Điều này có nghĩa là nếu bạn thành thạo các biểu thức chính quy, bạn sẽ xây dựng cho mình một kỹ năng lâu dài và có liên quan cao trong thị trường ngày nay. Bạn sẽ có thể viết một dòng mã mà người khác phải mất hàng tá Show
Bài viết này là tất cả về phương pháp re.split(pattern, string, maxsplit=0, flags=0)9 của Python's re library Phương thức re.split(pattern, string, maxsplit=0, flags=0)9 khớp với tất cả các lần xuất hiện của re.split(pattern, string, maxsplit=0, flags=0)1 trong re.split(pattern, string, maxsplit=0, flags=0)2 và chia chuỗi dọc theo các kết quả khớp dẫn đến danh sách các chuỗi giữa các kết quả khớp. Ví dụ, kết quả của re.split(pattern, string, maxsplit=0, flags=0)3 trong danh sách các chuỗi re.split(pattern, string, maxsplit=0, flags=0)4 Bạn có muốn làm chủ siêu năng lực regex không? . (1) nghiên cứu một chương sách, (2) giải câu đố mật mã và (3) xem video về chương giáo dục Python Regex Split - Hướng dẫn đầy đủ Xem video này trên YouTube làm thế nào lại. split() Làm việc trong Python?Phương thức re.split(pattern, string, maxsplit=0, flags=0)5 trả về một danh sách các chuỗi bằng cách khớp tất cả các lần xuất hiện của mẫu trong chuỗi và chia chuỗi dọc theo các lần xuất hiện đó. Đây là một ví dụ tối thiểu >>> import re >>> string = 'Learn Python with\t Finxter!' >>> re.split('\s+', string) ['Learn', 'Python', 'with', 'Finxter!'] Chuỗi chứa bốn từ được phân tách bằng ký tự khoảng trắng (đặc biệt. khoảng trống re.split(pattern, string, maxsplit=0, flags=0)6 và ký tự dạng bảng re.split(pattern, string, maxsplit=0, flags=0)7). Bạn sử dụng biểu thức chính quy re.split(pattern, string, maxsplit=0, flags=0)8 để khớp với tất cả các lần xuất hiện của một số dương các khoảng trắng tiếp theo. Các chuỗi con phù hợp đóng vai trò là dấu phân cách. Kết quả là chuỗi được chia dọc theo các dấu phân cách đó Nhưng đó không phải là tất cả. Chúng ta hãy xem định nghĩa chính thức của phương thức tách Sự chỉ rõ re.split(pattern, string, maxsplit=0, flags=0) Phương thức này có bốn đối số—hai trong số đó là tùy chọn
Đối số thứ nhất và thứ hai là bắt buộc. Đối số thứ ba và thứ tư là tùy chọn. Bạn sẽ tìm hiểu chi tiết hơn về những lập luận đó sau Giá trị trả về. Phương thức phân tách biểu thức chính quy trả về một danh sách các chuỗi con thu được bằng cách sử dụng biểu thức chính quy làm dấu phân cách 💡 Thông tin. Phương thức re.split(pattern, string, maxsplit=0, flags=0)24 được sử dụng trong thực tế để thực hiện các thao tác tách chuỗi phức tạp, chẳng hạn như tách chuỗi theo Chữ hoa. Điều này không thể thực hiện dễ dàng bằng cách sử dụng chức năng cơ bản của re.split(pattern, string, maxsplit=0, flags=0)25 Regex Split ví dụ tối thiểuHãy nghiên cứu thêm một số ví dụ—từ đơn giản đến phức tạp hơn Cách sử dụng đơn giản nhất là chỉ với hai đối số. regex dấu phân cách và chuỗi được tách re.split(pattern, string, maxsplit=0, flags=0)2 Bạn sử dụng một số lượng tùy ý các ký tự re.split(pattern, string, maxsplit=0, flags=0)26 hoặc re.split(pattern, string, maxsplit=0, flags=0)27 làm dấu phân cách biểu thức chính quy. Làm thế nào để bạn thực hiện điều này? . re.split(pattern, string, maxsplit=0, flags=0)20. Các chuỗi ở giữa được thêm vào danh sách trả về bài viết liên quan. Python Regex Superpower – Hướng dẫn cơ bản Làm cách nào để sử dụng Đối số maxsplit?Điều gì sẽ xảy ra nếu bạn không muốn tách toàn bộ chuỗi mà chỉ chia một số lần giới hạn. Đây là một ví dụ re.split(pattern, string, maxsplit=0, flags=0)2 Chúng tôi sử dụng regex dấu phân cách đơn giản re.split(pattern, string, maxsplit=0, flags=0)21 để chia chuỗi thành các chuỗi con. Trong cuộc gọi phương thức đầu tiên, chúng tôi đặt re.split(pattern, string, maxsplit=0, flags=0)22 để có được sáu phần tử danh sách. Trong cuộc gọi phương thức thứ hai, chúng tôi đặt re.split(pattern, string, maxsplit=0, flags=0)23 để có được ba phần tử danh sách. Bạn có thể nhìn thấy các mô hình? Bạn cũng có thể sử dụng đối số vị trí để lưu một số ký tự re.split(pattern, string, maxsplit=0, flags=0)7 Nhưng vì nhiều lập trình viên không biết về đối số re.split(pattern, string, maxsplit=0, flags=0)21, có lẽ bạn nên sử dụng đối số từ khóa để dễ đọc Làm cách nào để sử dụng đối số cờ tùy chọn?Như bạn đã thấy trong đặc tả, phương thức re.split(pattern, string, maxsplit=0, flags=0)24 đi kèm với đối số thứ tư tùy chọn là re.split(pattern, string, maxsplit=0, flags=0)26 re.split(pattern, string, maxsplit=0, flags=0) Mục đích của đối số flags là gì? Cờ cho phép bạn kiểm soát công cụ biểu thức chính quy. Bởi vì biểu thức chính quy rất mạnh nên chúng là một cách hữu ích để bật và tắt một số tính năng nhất định (ví dụ: có nên bỏ qua cách viết hoa khi đối sánh biểu thức chính quy của bạn hay không) Cú phápÝ nghĩa. ASCIINếu bạn không sử dụng cờ này, các ký hiệu biểu thức chính Python đặc biệt w, W, b, B, d, D, s và S sẽ khớp với các ký tự Unicode. Nếu bạn sử dụng cờ này, những ký hiệu đặc biệt đó sẽ chỉ khớp với các ký tự ASCII — như tên gợi ý. lại. Tương tự như lại. ASCIIre. GỠ LỖI Nếu bạn sử dụng cờ này, Python sẽ in một số thông tin hữu ích vào trình bao để giúp bạn gỡ lỗi biểu thức chính quy của mình. lại. IGNORECASENếu bạn sử dụng cờ này, công cụ regex sẽ thực hiện khớp không phân biệt chữ hoa chữ thường. Vì vậy, nếu bạn đang tìm kiếm [A-Z], nó cũng sẽ khớp với [a-z]. lại. Giống như lại. BỎ QUA. ĐỊA PHƯƠNGKhông sử dụng cờ này — không bao giờ. Nó không được dùng nữa—ý tưởng là thực hiện so khớp không phân biệt chữ hoa chữ thường tùy thuộc vào ngôn ngữ hiện tại của bạn. Nhưng nó không đáng tin cậy. lại. Giống như lại. ĐỊA PHƯƠNGre. MULTILINECờ này bật tính năng sau. biểu thức chính quy bắt đầu chuỗi '^' khớp ở đầu mỗi dòng (thay vì chỉ ở đầu chuỗi). Điều tương tự cũng xảy ra đối với biểu thức chính quy cuối chuỗi '$' hiện cũng khớp ở cuối mỗi dòng trong một chuỗi nhiều dòng. lại. Tương tự như lại. MULTILINEre. DOTALLKhông sử dụng cờ này, dấu chấm regex ‘. ' khớp với tất cả các ký tự ngoại trừ ký tự xuống dòng 'n'. Bật cờ này để thực sự khớp với tất cả các ký tự kể cả ký tự xuống dòng. lại. Tương tự như lại. dotallre. ĐỘNG TỪĐể cải thiện khả năng đọc của các biểu thức chính quy phức tạp, bạn có thể muốn cho phép nhận xét và định dạng (nhiều dòng) của chính biểu thức chính quy. Điều này là có thể với cờ này. tất cả các ký tự khoảng trắng và các dòng bắt đầu bằng ký tự '#' đều bị bỏ qua trong biểu thức chính quy. lại. XSGiống như lại. RÕ RÀNGĐây là cách bạn sử dụng nó trong một ví dụ thực tế re.split(pattern, string, maxsplit=0, flags=0)2 Mặc dù regex của bạn là chữ thường, chúng tôi bỏ qua cách viết hoa bằng cách sử dụng cờ re. Tôi là viết tắt của re. BỎ QUA TRƯỜNG HỢP. Nếu chúng ta không làm điều đó, kết quả sẽ hoàn toàn khác re.split(pattern, string, maxsplit=0, flags=0)3 Vì lớp ký tự [xy] chỉ chứa các ký tự viết thường 'x' và 'y', các biến thể chữ hoa của chúng xuất hiện trong danh sách được trả về thay vì được sử dụng làm dấu phân cách Đâu là sự khác biệt giữa re. split() và chuỗi. split() trong Python?Phương pháp re.split(pattern, string, maxsplit=0, flags=0)24 mạnh hơn nhiều. Phương thức re.split(pattern, string, maxsplit=0, flags=0)9 có thể tách một chuỗi dọc theo tất cả các lần xuất hiện của một mẫu phù hợp. Mẫu có thể phức tạp tùy ý. Điều này trái ngược với phương pháp re.split(pattern, string, maxsplit=0, flags=0)29 cũng chia một chuỗi thành các chuỗi con dọc theo dấu phân cách. Tuy nhiên, dấu phân cách phải là một chuỗi bình thường Một ví dụ mà phương pháp re.split(pattern, string, maxsplit=0, flags=0)24 mạnh mẽ hơn vượt trội hơn là tách văn bản dọc theo bất kỳ ký tự khoảng trắng nào re.split(pattern, string, maxsplit=0, flags=0)7 Phương thức re.split(pattern, string, maxsplit=0, flags=0)24 chia chuỗi dọc theo bất kỳ số ký tự khoảng trắng dương nào. Bạn không thể đạt được kết quả như vậy với re.split(pattern, string, maxsplit=0, flags=0)29 vì dấu phân cách phải là một chuỗi có kích thước không đổi Phương pháp Re liên quanCó năm phương thức biểu thức chính quy quan trọng mà bạn nên nắm vững
Năm phương thức này là 80% những gì bạn cần biết để bắt đầu với chức năng biểu thức chính quy của Python Video liên quanPython One-Liners. biểu thức chính quy. Regex để khớp số tiền đô la với xu tùy chọn Xem video này trên YouTube Đi đâu từ đây?Bạn đã tìm hiểu về phương pháp re.split(pattern, string, maxsplit=0, flags=0)9 chia re.split(pattern, string, maxsplit=0, flags=0)2 dọc theo các lần xuất hiện của re.split(pattern, string, maxsplit=0, flags=0)1 phù hợp và trả về một danh sách các chuỗi con Học Python khó. Nhưng nếu bạn gian lận, nó không khó như nó phải thế Tải xuống 8 Bảng cheat Python miễn phí ngay bây giờ Chris Trong khi làm việc với tư cách là nhà nghiên cứu về các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây chia lại () trong Python là gì?Lại. hàm split() tách chuỗi đã cho theo sự xuất hiện của một ký tự hoặc mẫu cụ thể . Khi tìm thấy mẫu, hàm này trả về các ký tự còn lại từ chuỗi trong danh sách.
Việc phân chia có nhanh hơn regex không?Cái nào sẽ hoạt động nhanh hơn, nó rất chủ quan. Regex sẽ hoạt động nhanh hơn khi thực thi, tuy nhiên thời gian biên dịch và thiết lập của Regex sẽ nhiều hơn khi tạo phiên bản. Nhưng nếu bạn luôn sẵn sàng đối tượng biểu thức chính quy ngay từ đầu, thì việc sử dụng lại biểu thức chính quy đó để thực hiện phân tách sẽ nhanh hơn . Chuỗi.
Có sự khác biệt nào giữa re match() và re search() trong mô-đun Python re không?Trăn. lại. tìm kiếm () so với lại. Có sự khác biệt giữa việc sử dụng cả hai chức năng. Cả hai đều trả về kết quả khớp đầu tiên của một chuỗi con được tìm thấy trong chuỗi, nhưng re. match() chỉ tìm kiếm từ đầu chuỗi và trả về đối tượng khớp nếu tìm thấy .
Split() có thể lấy hai đối số không?phương thức split() chấp nhận hai đối số . Đối số tùy chọn đầu tiên là dấu tách, chỉ định loại dấu tách sẽ sử dụng để tách chuỗi. Nếu đối số này không được cung cấp, thì giá trị mặc định là bất kỳ khoảng trắng nào, nghĩa là chuỗi sẽ tách ra bất cứ khi nào. |