Gói Python lại là gì?
Biểu thức chính quy (RE) trong ngôn ngữ lập trình là một chuỗi văn bản đặc biệt được sử dụng để mô tả mẫu tìm kiếm. Nó cực kỳ hữu ích để trích xuất thông tin từ văn bản như mã, tệp, nhật ký, bảng tính hoặc thậm chí cả tài liệu Show
Trong khi sử dụng biểu thức chính quy Python, điều đầu tiên cần nhận ra là mọi thứ về cơ bản là một ký tự và chúng tôi đang viết các mẫu để khớp với một chuỗi ký tự cụ thể còn được gọi là chuỗi. Các chữ cái Ascii hoặc latin là những chữ cái có trên bàn phím của bạn và Unicode được sử dụng để khớp với văn bản nước ngoài. Nó bao gồm các chữ số và dấu chấm câu và tất cả các ký tự đặc biệt như $#@. %, vân vân Trong hướng dẫn Python RegEx này, chúng ta sẽ tìm hiểu-
Chẳng hạn, một biểu thức chính quy Python có thể yêu cầu một chương trình tìm kiếm văn bản cụ thể từ chuỗi và sau đó in ra kết quả tương ứng. Biểu hiện có thể bao gồm
Biểu thức chính quy hoặc RegEx trong Python được ký hiệu là RE (RE, biểu thức chính quy hoặc mẫu biểu thức chính quy) được nhập thông qua mô-đun re. Python hỗ trợ biểu thức chính quy thông qua các thư viện. RegEx trong Python hỗ trợ nhiều thứ khác nhau như Công cụ sửa đổi, Số nhận dạng và Ký tự khoảng trắng IdentifiersModifiersKý tự khoảng trắngYêu cầu thoát\d= bất kỳ số nào (một chữ số)\d đại diện cho một chữ số. Bán tại. \d{1,5} nó sẽ khai báo chữ số trong khoảng 1,5 như 424,444,545, v.v. \n = dòng mới. + * ? . \\D= bất kỳ thứ gì ngoại trừ một số (không phải chữ số)+ = khớp với 1 hoặc nhiều hơn\s= dấu cách\s = dấu cách Cú pháp biểu thức chính quy(RE)import re
Chúng ta sẽ bắt đầu hướng dẫn về biểu thức với bài tập đơn giản này bằng cách sử dụng các biểu thức (w+) và (^) Ví dụ về biểu thức w+ và ^
Ở đây chúng ta sẽ thấy một Ví dụ về RegEx của Python về cách chúng ta có thể sử dụng biểu thức w+ và ^ trong mã của mình. Chúng tôi bao hàm lại. findall() trong Python, ở phần sau của hướng dẫn này nhưng trong một thời gian, chúng ta chỉ tập trung vào biểu thức \w+ và \^ Ví dụ: đối với chuỗi “guru99, giáo dục rất thú vị” nếu chúng ta thực thi mã với w+ và ^, nó sẽ cho kết quả đầu ra là “guru99” import re xx = "guru99,education is fun" r1 = re.findall(r"^\w+",xx) print(r1) Hãy nhớ rằng, nếu bạn xóa dấu + khỏi w+, đầu ra sẽ thay đổi và nó sẽ chỉ cung cấp ký tự đầu tiên của chữ cái đầu tiên, i. e. , [g] Ví dụ về biểu thức \s trong re. chức năng phân chia
Để hiểu cách hoạt động của RegEx này trong Python, chúng ta bắt đầu với một Ví dụ RegEx Python đơn giản về hàm phân tách. Trong ví dụ này, chúng tôi đã tách từng từ bằng cách sử dụng “re. split” và đồng thời chúng tôi đã sử dụng biểu thức \s cho phép phân tích từng từ trong chuỗi một cách riêng biệt Khi bạn thực thi mã này, nó sẽ cung cấp cho bạn kết quả [‘we’, ‘are’, ‘splitting’, ‘the’, ‘words’] Bây giờ, hãy xem điều gì xảy ra nếu bạn xóa “\” khỏi s. Không có bảng chữ cái 's' trong đầu ra, điều này là do chúng tôi đã xóa '\' khỏi chuỗi và nó đánh giá “s” là một ký tự thông thường và do đó phân tách các từ ở bất kỳ nơi nào nó tìm thấy “s” trong chuỗi Tương tự, có một loạt biểu thức chính quy Python khác mà bạn có thể sử dụng theo nhiều cách khác nhau trong Python như \d,\D,$,\. ,\b, v.v. Đây là mã hoàn chỉnh import re xx = "guru99,education is fun" r1 = re.findall(r"^\w+", xx) print((re.split(r'\s','we are splitting the words'))) print((re.split(r's','split the words'))) Tiếp theo, chúng ta sẽ xem các loại phương thức được sử dụng với biểu thức chính quy trong Python Sử dụng các phương thức biểu thức chính quyGói “re” cung cấp một số phương thức để thực sự thực hiện các truy vấn trên một chuỗi đầu vào. Chúng ta sẽ thấy các phương thức re trong Python
Ghi chú. Dựa trên các biểu thức chính quy, Python cung cấp hai thao tác nguyên thủy khác nhau. Phương thức match chỉ kiểm tra sự trùng khớp ở đầu chuỗi trong khi search kiểm tra sự trùng khớp ở bất kỳ đâu trong chuỗi lại. trận đấu()lại. hàm match() của re trong Python sẽ tìm kiếm mẫu biểu thức chính quy và trả về lần xuất hiện đầu tiên. Phương thức RegEx Match của Python chỉ kiểm tra sự trùng khớp ở đầu chuỗi. Vì vậy, nếu một kết quả khớp được tìm thấy trong dòng đầu tiên, nó sẽ trả về đối tượng khớp. Nhưng nếu một kết quả phù hợp được tìm thấy trong một số dòng khác, hàm Python RegEx Match trả về giá trị rỗng Ví dụ, xét đoạn mã sau của Python re. hàm match(). Biểu thức “w+” và “\W” sẽ khớp với các từ bắt đầu bằng chữ cái 'g' và sau đó, bất kỳ từ nào không bắt đầu bằng 'g' đều không được xác định. Để kiểm tra sự trùng khớp cho từng phần tử trong danh sách hoặc chuỗi, chúng tôi chạy vòng lặp for trong Python này. khớp () Ví dụ lại. Tìm kiếm(). Tìm mẫu trong văn bảnlại. hàm search() sẽ tìm kiếm mẫu biểu thức chính quy và trả về lần xuất hiện đầu tiên. Không giống như Python lại. match(), nó sẽ kiểm tra tất cả các dòng của chuỗi đầu vào. Python lại. hàm search() trả về một đối tượng khớp khi tìm thấy mẫu và “null” nếu không tìm thấy mẫu Làm thế nào để sử dụng tìm kiếm()?Để sử dụng chức năng tìm kiếm (), trước tiên bạn cần nhập mô-đun tái Python và sau đó thực thi mã. Python lại. hàm search() lấy “mẫu” và “văn bản” để quét từ chuỗi chính của chúng tôi Ví dụ ở đây, chúng tôi tìm kiếm hai chuỗi ký tự “Kiểm thử phần mềm” “guru99”, trong chuỗi văn bản “Kiểm thử phần mềm rất thú vị”. Đối với phần mềm kiểm tra phần mềm, chúng tôi đã tìm thấy kết quả phù hợp do đó nó trả về đầu ra của Python re. search() Ví dụ như “đã tìm thấy kết quả khớp”, trong khi đối với từ “guru99” chúng tôi không thể tìm thấy trong chuỗi do đó nó trả về kết quả là “Không khớp” lại. tìm tất cả ()mô-đun findall() được sử dụng để tìm kiếm các lần xuất hiện “tất cả” khớp với một mẫu nhất định. Ngược lại, mô-đun search() sẽ chỉ trả về lần xuất hiện đầu tiên khớp với mẫu đã chỉ định. findall() sẽ lặp qua tất cả các dòng của tệp và sẽ trả về tất cả các kết quả khớp mẫu không chồng chéo trong một bước Làm thế nào để sử dụng lại. findall() bằng Python?Ở đây chúng tôi có một danh sách các địa chỉ e-mail và chúng tôi muốn tất cả các địa chỉ e-mail được lấy ra khỏi danh sách, chúng tôi sử dụng phương pháp re. tìm tất cả () trong Python. Nó sẽ tìm thấy tất cả các địa chỉ e-mail từ danh sách Đây là mã hoàn chỉnh cho Ví dụ về re. tìm tất cả () import re list = ["guru99 get", "guru99 give", "guru Selenium"] for element in list: z = re.match("(g\w+)\W(g\w+)", element) if z: print((z.groups())) patterns = ['software testing', 'guru99'] text = 'software testing is fun?' for pattern in patterns: print('Looking for "%s" in "%s" ->' % (pattern, text), end=' ') if re.search(pattern, text): print('found a match!') else: print('no match') abc = '[email protected], [email protected], [email protected]' emails = re.findall(r'[\w\.-]+@[\w\.-]+', abc) for email in emails: print(email) Cờ PythonNhiều Phương thức Regex trong Python và các hàm Regex nhận một đối số tùy chọn có tên là Flags. Cờ này có thể sửa đổi ý nghĩa của mẫu Regex Python đã cho. Để hiểu những điều này, chúng ta sẽ xem một hoặc hai ví dụ về các Cờ này Các cờ khác nhau được sử dụng trong Python bao gồm Cú pháp cho Cờ RegexCờ này làm gì[re. M]Hãy bắt đầu/kết thúc xem xét từng dòng[re. Tôi] Nó bỏ qua trường hợp [re. S]Làm [. ][lại. U]Tạo { \w,\W,\b,\B} tuân theo quy tắc Unicode[re. L]Đặt {\w,\W,\b,\B} theo ngôn ngữ[re. X] Cho phép nhận xét trong Regex Ví dụ về lại. Cờ M hoặc nhiều dòngTrong nhiều dòng, ký tự mẫu [^] khớp với ký tự đầu tiên của chuỗi và đầu mỗi dòng (ngay sau mỗi dòng mới). Trong khi biểu thức nhỏ “w” được sử dụng để đánh dấu khoảng trắng bằng các ký tự. Khi bạn chạy mã, biến đầu tiên “k1” chỉ in ra ký tự 'g' cho từ guru99, trong khi khi bạn thêm cờ nhiều dòng, nó sẽ tìm nạp các ký tự đầu tiên của tất cả các thành phần trong chuỗi Đây là mã import re xx = """guru99 careerguru99 selenium""" k1 = re.findall(r"^\w", xx) k2 = re.findall(r"^\w", xx, re.MULTILINE) print(k1) print(k2)
Tương tự như vậy, bạn cũng có thể sử dụng các cờ Python khác như re. U (Unicode), lại. L (Theo ngôn ngữ), lại. X (Cho phép nhận xét), v.v. Ví dụ về Python 2Các mã trên là ví dụ về Python 3, Nếu bạn muốn chạy trong Python 2, vui lòng xem xét mã sau # Example of w+ and ^ Expression import re xx = "guru99,education is fun" r1 = re.findall(r"^\w+",xx) print r1 # Example of \s expression in re.split function import re xx = "guru99,education is fun" r1 = re.findall(r"^\w+", xx) print (re.split(r'\s','we are splitting the words')) print (re.split(r's','split the words')) # Using re.findall for text import re list = ["guru99 get", "guru99 give", "guru Selenium"] for element in list: z = re.match("(g\w+)\W(g\w+)", element) if z: print(z.groups()) patterns = ['software testing', 'guru99'] text = 'software testing is fun?' for pattern in patterns: print 'Looking for "%s" in "%s" ->' % (pattern, text), if re.search(pattern, text): print 'found a match!' else: print 'no match' abc = '[email protected], [email protected], [email protected]' emails = re.findall(r'[\w\.-]+@[\w\.-]+', abc) for email in emails: print email # Example of re.M or Multiline Flags import re xx = """guru99 careerguru99 selenium""" k1 = re.findall(r"^\w", xx) k2 = re.findall(r"^\w", xx, re.MULTILINE) print k1 print k2 Tóm lượcBiểu thức chính quy trong ngôn ngữ lập trình là một chuỗi văn bản đặc biệt được sử dụng để mô tả mẫu tìm kiếm. Nó bao gồm các chữ số và dấu chấm câu và tất cả các ký tự đặc biệt như $#@. %, vân vân. Biểu thức có thể bao gồm nghĩa đen
Trong Python, một biểu thức chính quy được ký hiệu là RE (RE, biểu thức chính quy hoặc mẫu biểu thức chính quy) được nhúng thông qua mô-đun Python re Việc sử dụng mô-đun lại là gì?Mô-đun re cung cấp một tập hợp các tiện ích biểu thức chính quy mạnh mẽ, cho phép bạn nhanh chóng kiểm tra xem một chuỗi đã cho có khớp với một mẫu nhất định hay không (sử dụng hàm khớp) hoặc có chứa một mẫu như vậy (sử dụng chức năng tìm kiếm)
r có nghĩa là gì trong Python re?R có nghĩa là chuỗi sẽ được coi là chuỗi thô , nghĩa là tất cả các mã thoát sẽ bị bỏ qua.
Làm cách nào để cài đặt lại trong Python?Gõ "cmd" vào thanh tìm kiếm và nhấn Enter để mở dòng lệnh. Cái này là cái gì? . Điều này cài đặt regex cho cài đặt Python mặc định của bạn. Type “ pip install regex ” (without quotes) in the command line and hit Enter again. This installs regex for your default Python installation.
Được tích hợp lại vào Python?Python có gói dựng sẵn có tên là re , gói này có thể được sử dụng để làm việc với Biểu thức chính quy. |