Cách sử dụng khớp lại trong python
Phương thức 6 của Python chỉ tìm mẫu biểu thức chính quy ở đầu chuỗi đích và trả về đối tượng khớp nếu tìm thấy khớp; Show
Trong bài viết này, Bạn sẽ tìm hiểu cách khớp một mẫu biểu thức chính quy bên trong chuỗi đích bằng cách sử dụng phương thức 7, search() và findall() của mô-đun 8Phương thức 6 sẽ bắt đầu khớp một mẫu biểu thức chính quy từ ký tự đầu tiên của văn bản và nếu tìm thấy khớp, nó sẽ trả về một đối tượng 0. Sau này chúng ta có thể sử dụng đối tượng 0 để trích xuất chuỗi phù hợpSau khi đọc bài viết này, bạn sẽ có thể thực hiện các thao tác khớp mẫu biểu thức chính quy sau trong Python OperationMeaning 2Match_______43 chỉ ở đầu chuỗi 4Match_______43 bất kỳ đâu trong chuỗi. Chỉ trả về kết quả khớp đầu tiên_______46Dollar ( 7) khớp với_______43 ở cuối chuỗi. 9Trả về tất cả các kết quả phù hợp với cờ 3 51Caret ( 52) và 53 để khớp với 3 ở đầu mỗi dòng mới của một chuỗi 55Trả về một đối tượng khớp khi và chỉ khi toàn bộ chuỗi mục tiêu khớp với 3. Hoạt động khớp regex PythonMục lục
Làm thế nào để sử dụng lại. cuộc thi đấu()Trước khi tiếp tục, hãy xem cú pháp của 6Cú pháp của lại. cuộc thi đấu() 2Mẫu biểu thức chính quy và chuỗi đích là đối số bắt buộc và cờ là tùy chọn
Giá trị trả vềNếu không hoặc nhiều ký tự ở đầu chuỗi khớp với mẫu biểu thức chính quy, Nó trả về một thể hiện đối tượng khớp tương ứng i. e. , 0 đối tượng. Đối tượng khớp chứa các vị trí bắt đầu và kết thúc khớp và giá trị khớp thực tếNếu nó không xác định được các lần xuất hiện của mẫu mà chúng tôi muốn tìm hoặc một mẫu như vậy không tồn tại trong chuỗi mục tiêu, nó sẽ trả về loại 54Bây giờ, hãy xem cách sử dụng 6Khớp mẫu biểu thức chính quy ở đầu chuỗiBây giờ, hãy xem ví dụ để khớp với bất kỳ từ có bốn chữ cái nào ở đầu chuỗi. (Kiểm tra xem chuỗi có bắt đầu bằng một mẫu nhất định không) Mẫu phù hợp. 56Mô hình này có nghĩa là gì?
Nói một cách đơn giản, nó có nghĩa là khớp với bất kỳ từ có bốn chữ cái nào ở đầu chuỗi sau
Như chúng ta có thể thấy trong chuỗi trên Emma là từ có bốn chữ cái xuất hiện ở đầu chuỗi mục tiêu, vì vậy chúng ta nên lấy Emma làm đầu ra
Như bạn có thể thấy, trận đấu bắt đầu ở chỉ số 0 và kết thúc trước chỉ số 4. bởi vì phương thức 6 luôn khớp mẫu thực hiện ở đầu chuỗi mục tiêuHãy hiểu ví dụ trên
Khớp mẫu biểu thức chính quy ở bất kỳ đâu trong chuỗiGiả sử bạn muốn khớp bất kỳ từ có sáu chữ cái nào bên trong chuỗi mục tiêu sau 5Nếu bạn sử dụng phương thức match() để khớp với bất kỳ từ có sáu chữ cái nào bên trong chuỗi, bạn sẽ nhận được Không có vì nó chỉ trả về kết quả khớp nếu mẫu nằm ở đầu chuỗi. Và như chúng ta có thể thấy từ sáu chữ cái không có ở đầu Vì vậy, để khớp mẫu biểu thức chính quy ở bất kỳ đâu trong chuỗi, bạn cần sử dụng phương pháp 82 hoặc 83 của mô-đun REHãy xem bản demo Ví dụ để khớp từ có sáu chữ cái ở bất kỳ đâu trong chuỗi 5Khớp regex ở cuối chuỗiĐôi khi chúng tôi muốn khớp mẫu ở cuối chuỗi. Ví dụ: bạn muốn kiểm tra xem một chuỗi có kết thúc bằng một từ, số hoặc ký tự cụ thể không Sử dụng ký tự đô la ( 7) đô la, chúng tôi có thể khớp với mẫu biểu thức chính quy ở cuối chuỗiVí dụ để khớp số có bốn chữ số ở cuối chuỗi 8Khớp từ hoặc chuỗi chính xácTrong phần này, chúng ta sẽ xem cách viết một mẫu biểu thức chính quy để khớp với một từ chính xác hoặc một chuỗi con bên trong chuỗi đích. Hãy xem ví dụ để khớp từ “player” trong chuỗi mục tiêu Thí dụ 5Hiểu đối tượng MatchNhư bạn đã biết, phương thức match() và search() trả về một đối tượng 0 nếu tìm thấy kết quả khớp. Hãy xem cấu trúc của một đối tượng r____386 8Đối tượng 0 này chứa các mục sau
Đối tượng Match có một số phương thức và thuộc tính để lấy thông tin về chuỗi phù hợp. Hãy xem những Phương thức Mô tả 88Trả về chuỗi khớp với biểu thức chính quy 50Trả về vị trí bắt đầu của trận đấu 51Trả về vị trí kết thúc của trận đấu 52Trả về một bộ chứa các vị trí (bắt đầu, kết thúc) của trận đấuVí dụ để lấy thông tin về chuỗi phù hợp 5Khớp mẫu biểu thức chính quy bắt đầu và kết thúc bằng văn bản đã choGiả sử bạn muốn kiểm tra xem một chuỗi đã cho có bắt đầu và kết thúc bằng một văn bản cụ thể không. Chúng ta có thể làm điều này bằng cách sử dụng hai siêu ký tự biểu thức chính quy sau với phương thức 6
Bây giờ, hãy kiểm tra xem chuỗi đã cho có bắt đầu bằng chữ 'p' và kết thúc bằng chữ 't' không Thí dụ 7Nhiều hoạt động phù hợp hơnTrong phần này, chúng ta hãy xem một số hoạt động khớp regex phổ biến như
0Ngoài ra, hãy đọc nhóm khớp/chụp regex Tìm kiếm Regex so với. cuộc thi đấuTrong phần này, chúng ta sẽ hiểu sự khác biệt giữa phương thức search() và match(). Bạn cũng sẽ biết khi nào nên sử dụng phương pháp đối sánh và tìm kiếm trong khi thực hiện các thao tác regex Mô-đun Python RE cung cấp hai phương thức khác nhau để thực hiện khớp mẫu biểu thức chính quy
làm thế nào lại. trận đấu() hoạt động Phương thức khớp trả về một thể hiện đối tượng khớp tương ứng nếu không hoặc nhiều ký tự ở đầu chuỗi khớp với mẫu biểu thức chính quy Nói một cách đơn giản, 54 chỉ trả về một đối tượng khớp nếu mẫu nằm ở đầu chuỗi; làm thế nào lại. tìm kiếm () hoạt động Mặt khác, phương thức tìm kiếm quét toàn bộ chuỗi để tìm kiếm một mẫu và chỉ trả về kết quả khớp đầu tiên. Tôi. e. , Ngay khi nhận được kết quả khớp đầu tiên, nó sẽ dừng thực thi Hãy xem ví dụ để hiểu sự khác biệt giữa tìm kiếm và đối sánh. Trong ví dụ này, chúng ta sẽ xem cách so khớp mẫu biểu thức chính quy bằng cách sử dụng phương thức so khớp và tìm kiếm Bây giờ, hãy thử khớp bất kỳ số có 2 chữ số nào bên trong chuỗi mục tiêu sau bằng phương pháp tìm kiếm và khớp 1Như bạn có thể thấy, một số có hai chữ số không xuất hiện ở đầu chuỗi, vì vậy phương thức match() sẽ trả về Không có và phương thức tìm kiếm sẽ trả về giá trị khớp Bởi vì phương thức match() cố gắng chỉ tìm một kết quả khớp khi bắt đầu và tìm kiếm(), hãy cố gắng tìm một kết quả khớp ở bất kỳ đâu trong chuỗi 2Hành vi tìm kiếm so với. khớp với một chuỗi nhiều dòngHãy xem mã ví dụ để hiểu cách hoạt động của phương thức tìm kiếm và đối sánh khi một chuỗi chứa các dòng mới Chúng tôi sử dụng cờ 53 với siêu ký tự dấu mũ ( 52) để khớp với từng mẫu biểu thức chính quy khi bắt đầu mỗi dòng mới. Nhưng bạn phải lưu ý rằng ngay cả trong chế độ MULTILINE, match() sẽ chỉ khớp ở đầu chuỗi chứ không phải ở đầu mỗi dòngMặt khác, phương pháp tìm kiếm quét toàn bộ chuỗi nhiều dòng để tìm kiếm một mẫu và chỉ trả về kết quả khớp đầu tiên Hãy xem ví dụ để hiểu sự khác biệt giữa tìm kiếm và so khớp khi tìm kiếm bên trong một chuỗi nhiều dòng 3import re target_string = "Emma is a basketball player who was born on June 17" result = re.match(r"\w{4}", target_string) # # printing the Match object print("Match object: ", result) # Output re.Match object; span=(0, 4), match='Emma' # Extract match value print("Match value: ", result.group()) # Output 'Emma'57Không giống như phương thức match() chỉ thực hiện khớp mẫu ở đầu chuỗi, phương thức 58 trả về một đối tượng khớp khi và chỉ khi toàn bộ chuỗi đích từ ký tự đầu tiên đến ký tự cuối cùng khớp với mẫu biểu thức chính quyNếu khớp được thực hiện thành công, nó sẽ trả về toàn bộ chuỗi dưới dạng giá trị khớp vì chúng tôi luôn khớp toàn bộ chuỗi trong 59Ví dụ: bạn muốn chuỗi mục tiêu có độ dài chính xác là 42 ký tự. Hãy tạo một mẫu biểu thức chính quy sẽ kiểm tra xem chuỗi mục tiêu có dài 42 ký tự không Mẫu phù hợp. 80Mô hình này có nghĩa là gì? Mẫu này cho biết tôi muốn khớp một chuỗi gồm 42 ký tự Bây giờ chúng ta hãy xem xét kỹ hơn mô hình. Đầu tiên, bạn sẽ thấy dấu chấm trong cú pháp biểu thức chính quy
Bây giờ, hãy xem ví dụ 4đầu ra 5Như bạn có thể thấy từ đầu ra, chúng tôi có một đối tượng khớp, nghĩa là khớp đã được thực hiện thành công Ghi chú. Nếu chuỗi chứa một hoặc nhiều ký tự dòng mới, thì kết quả khớp sẽ không thành công vì ký tự đặc biệt loại trừ dòng mới. Do đó, nếu chuỗi mục tiêu của chúng tôi có nhiều dòng hoặc đoạn văn, thì kết quả khớp sẽ không thành công. chúng ta có thể giải quyết các vấn đề như vậy bằng thuộc tính flags re match() trả về cái gì?Hàm match(). Khi được cung cấp với một biểu thức chính quy, re. hàm match() kiểm tra chuỗi khớp với một mẫu trong RegEx và trả về lần xuất hiện đầu tiên của một mẫu khớp như vậy . Hàm này chỉ kiểm tra sự trùng khớp ở đầu chuỗi.
Tìm kiếm lại hoạt động như thế nào trong Python?Python regex lại. phương thức search() tìm kiếm các lần xuất hiện của mẫu biểu thức chính quy bên trong toàn bộ chuỗi đích và trả về phiên bản Đối tượng khớp tương ứng nơi tìm thấy kết quả khớp . Ở đó. search() chỉ trả về kết quả khớp đầu tiên với mẫu từ chuỗi mục tiêu.
Biểu thức chính quy '$' sẽ khớp với cái gì?Theo mặc định, biểu thức chính quy sẽ khớp với bất kỳ phần nào của chuỗi. Thường hữu ích khi neo biểu thức chính quy để nó khớp từ đầu hoặc cuối chuỗi. ^ khớp với phần đầu của chuỗi. $ khớp với phần cuối của chuỗi .
Khớp lại có trả về Boolean Python không?Khoa học dữ liệu thực tế sử dụng Python
. if there is a match, it has bool value of True and if there is no match, you get None that has a bool value of False. |