Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

Biểu thức Chính quy


``` Regular Expressions (giảm đi đôi chút để regexp, regex, hay re) là một công cụ để tìm kiếm mẫu nội dung trong văn bản. Trong Python, ta có module re. Ứng dụng của các biểu thức chính quy rất phong phú, nhưng chúng khá phức tạp, nên khi suy nghĩ về việc sử dụng regex cho một nhiệm vụ nào đó, hãy nghĩ tới các phương pháp khác và coi regex như là sự lựa chọn cuối cùng.

Một regex ví dụ là r"^(From|To|Cc).*[email protected]" Giờ là phần giải thích: ký tự mũ ^ khớp với văn bản ở đầu dòng. Nhóm tiếp theo, phần có (From|To|Cc) nghĩa là dòng phải bắt đầu với một trong những từ được tách bởi ký tự ống |. Đây được gọi là toán tử HOẶC, và regex sẽ khớp nếu dòng bắt đầu bằng bất kỳ từ nào trong nhóm. Ký tự .*? mang ý nghĩa khớp không thường xuyên với bất kỳ số lượng ký tự nào, ngoại trừ ký tự dòng mới \n. Phần không tham lam nghĩa là khớp với số lần lặp lại ít nhất có thể. Ký tự . đại diện cho bất kỳ ký tự nào không phải là dòng mới, ký tự * nghĩa là lặp lại 0 hoặc nhiều lần, và ký tự ? khiến nó trở nên không tham lam.

Vì vậy, các dòng sau đây sẽ được regex đó khớp: From: [email protected] To: !asp]<,. [email protected]

Có tham khảo đầy đủ cho cú pháp re tại python docs.

Như một ví dụ của một regex "đúng" để khớp email (như cái trong bài tập), xem thêm tại đây ```

vi Bài tập--------

# Example: import re pattern = re.compile(r"\[(on|off)\]") # Slight optimization print(re.search(pattern, "Mono: Playback 65 [75%] [-16.50dB] [on]")) # Returns a Match object! print(re.search(pattern, "Nada...:-(")) # Doesn't return anything. # End Example # Exercise: make a regular expression that will match an email def test_email(your_pattern): pattern = re.compile(your_pattern) emails = ["[email protected]", "[email protected]", "wha.t.`1an?ug{}[email protected]"] for email in emails: if not re.match(pattern, email): print("You failed to match %s" % (email)) elif not your_pattern: print("Forgot to enter a pattern!") else: print("Pass") pattern = r"" # Your pattern here! test_email(pattern) # Exercise: make a regular expression that will match an email import re def test_email(your_pattern): pattern = re.compile(your_pattern) emails = ["[email protected]", "[email protected]", "wha.t.`1an?ug{}[email protected]"] for email in emails: if not re.match(pattern, email): print("You failed to match %s" % (email)) elif not your_pattern: print("Forgot to enter a pattern!") else: print("Pass") # Your pattern here! pattern = r"\"?([-a-zA-Z0-9.`?{}]+@\w+\.\w+)\"?" test_email(pattern) test_output_contains("Pass") success_msg("Great work!")

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy