1. Trang chủ
  2. » Thể loại khác

regular expression trong python

9 344 2

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Regular Expression trong Python

    • Hàm match trong Python

      • Ví dụ:

    • Hàm search trong Python

      • Ví dụ

    • Phân biệt match và search trong Python

      • Ví dụ

    • Tìm kiếm và thay thế trong Python

      • Ví dụ

    • Danh sách modifier trong Python

    • Các Pattern trong Python

    • Ví dụ lớp ký tự trong Python

Nội dung

http://vietjack.com/python/index.jsp Copyright © vietjack.com Regular Expression Python Một Regular Expression dãy ký tự đặc biệt giúp bạn so khớp tìm chuỗi khác tập hợp chuỗi, sử dụng cú pháp riêng pattern Regular Expression sử dụng phổ biến giới UNIX re Module cung cấp hỗ trợ đầy đủ Perl-like Regular Expression Python Module tạo Exception re.error xảy lỗi biên dịch sử dụng Regular Expression Có hai hàm quan trọng sử dụng để xử lý Regular Expression, là: Hàm match Python Hàm cố gắng so khớp pattern với string với flag tùy ý Dưới cú pháp cho hàm re.match(pattern, string, flags=0) Chi tiết tham số:  pattern : Đây Regular Expression để so khớp  string : Đây chuỗi, mà tìm kiếm để so khớp pattern phần đầu chuỗi  flags : Bạn xác định flag khác sử dụng toán tử | Các modifier liệt kê bảng bên Hàm re.match trả đối tượng match thành công trả None thất bại Chúng ta sử dụng hàm group(num) groups() đối tượng match để lấy biểu thức so khớp (kết nối)  Phương thức group(num=0) trả toàn kết nối (hoặc num phân nhóm cụ thể)  Phương thức groups() trả tất phân nhóm kết nối Tuple (là trống khơng có kết nối hay so khớp nào) Ví dụ: import re http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com line = "Hoc Python la de hon hoc Java?" matchObj = re.match( r'(.*) la (.*?) *', line, re.M|re.I) if matchObj: print "matchObj.group() : ", matchObj.group() print "matchObj.group(1) : ", matchObj.group(1) print "matchObj.group(2) : ", matchObj.group(2) else: print "Khong co ket noi!!" Kết là: matchObj.group() : Hoc Python la de hon hoc Java? matchObj.group(1) : Hoc Python matchObj.group(2) : de Hàm search Python Hàm tìm kiếm cho xuất pattern bên string với flags tùy ý Dưới cú pháp cho hàm search: re.search(pattern, string, flags=0) Các tham số giải thích hàm match Hàm re.search trả đối tượng match thành công trả None thất bại Chúng ta sử dụng hàm group(num) groups() đối tượng match để lấy biểu thức so khớp (kết nối) Các hàm trình bày Ví dụ import re line = "Hoc Python la de hon hoc Java?"; searchObj = re.search( r'(.*) la (.*?) *', line, re.M|re.I) http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com if searchObj: print "searchObj.group() : ", searchObj.group() print "searchObj.group(1) : ", searchObj.group(1) print "searchObj.group(2) : ", searchObj.group(2) else: print "Khong tim thay!!" Kết là: searchObj.group() : Hoc Python la de hon hoc Java? searchObj.group(1) : Hoc Python searchObj.group(2) : de Phân biệt match search Python Python cung cấp hai hoạt động sở dựa Reguler Expression, là: match để kiểm tra kết nối phần đầu chuỗi, search tìm kiếm kết nối đâu chuỗi Ví dụ import re line = "Hoc Python la de hon hoc Java?"; matchObj = re.match( r'thon', line, re.M|re.I) if matchObj: print "match > matchObj.group() : ", matchObj.group() else: print "Khong co ket noi!!" searchObj = re.search( r'thon', line, re.M|re.I) if searchObj: print "search > searchObj.group() : ", searchObj.group() else: http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com print "Khong tim thay!!" Kết là: Khong co ket noi!! search > searchObj.group() : thon Tìm kiếm thay Python Một phương thức quan trọng mà sử dụng với Regular Expression sub Dưới cú pháp: re.sub(pattern, repl, string, max=0) Phương thức thay tất xuất pattern string với repl Phương thức thay tất xuất trừ bạn cung cấp tham số max Phương thức trả chuỗi sửa đổi Ví dụ import re phone = "01633-810-628 # Day la so dien thoai" # Xoa cac comment num = re.sub(r'#.*$', "", phone) print "So dien thoai : ", num # Xoa cac ky tu khong phai ky so num = re.sub(r'\D', "", phone) print "So dien thoai : ", num Kết là: So dien thoai : 01633-810-628 So dien thoai : 01633810628 http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com Danh sách modifier Python Các modifier liệt kê sử dụng flag tùy ý cho hàm match search Bạn cung cấp nhiều modifier sử dụng toán tử | Modifier Miêu tả re.I Thực việc kết nối so khớp không phân biệt kiểu chữ re.L Thông dịch từ theo Locale re.M Làm cho $ kết nối với phần cuối dòng (mà khơng kết nối phần cuối chuỗi) làm cho ^ kết nối với phần đầu dòng (mà khơng kết nối phần đầu chuỗi) re.S Làm cho dot (dấu chấm) kết nối với ký tự nào, bao gồm newline re.U Thông dịch chữ theo ký tự Unicode Flag ảnh hưởng tới hành vi \w, \W, \b, \B re.X Cho phép cú pháp "cuter" regular expression Nó bỏ qua khoảng trống trắng whitespace (ngoại trừ bên [] tránh \) coi # dạng comment Các Pattern Python Ngoại trừ ký tự điều khiển, (+ ? * ^ $ ( ) [ ] { } | \), tất ký tự lại kết nối với chúng Bạn tránh ký tự điều khiển cách đặt trước dấu \ Dưới danh sách pattern có sẵn Python: Pattern Miêu tả ^ Dưới danh sách pattern có sẵn Python: http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com $ Kết nối với phần cuối dòng Kết nối ký tự đơn ngoại trừ newline Sử dụng tùy chọn m cho phép kết nối với newline [ ] Kết nối với ký tự đơn [] [^ ] Kết nối với ký tự đơn không [] re* Kết nối với nhiều xuất biểu thức đặt trước re+ Kết nối với nhiều xuất biểu thức đặt trước re? Kết nối với xuất biểu thức đặt trước re{ n} Kết nối với n xuất biểu thức đặt trước re{ n,} Kết nối với n nhiều xuất biểu thức đặt trước re{ n, m} Kết nối với n nhiều m xuất biểu thức đặt trước a| b Kết nối với a b (re) Nhóm Regular Expression ghi nhớ text kết nối (?imx) Bật toggle tạm tời tùy chọn i, m x bên Regular Expression Nếu cặp dấu ngoặc đơn khu vực bị ảnh hưởng (?-imx) Tắt toggle tạm tời tùy chọn i, m x bên Regular Expression Nếu cặp dấu ngoặc đơn khu vực bị ảnh http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com hưởng (?: re) Nhóm Regular Expression mà không ghi nhớ text kết nối (?imx: re) Bật toggle tạm thời tùy chọn i, m, x bên cặp dấu ngoặc đơn (?-imx: re) Tắt toggle tạm thời tùy chọn i, m, x bên cặp dấu ngoặc đơn (?# ) Comment (?= re) Xác định vị trí sử dụng pattern Khơng có dãy giá trị (?! re) Xác định vị trí sử dụng phủ định pattern Khơng có dãy giá trị (?> re) Kết nối pattern độc lập mà không backtrack \w Kết nối ký tự từ \W Kết nối ký tự từ \s Kết nối với whitespace Tương đương với [\t\n\r\f] \S Kết nối với ký tự không whitespace \d Kết nối với ký số Tương đương với [0-9] \D Kết nối với ký tự không ký số http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com \A Kết nối với phần đầu chuỗi \Z Kết nối với phần cuối chuỗi Nếu newline tồn tại, kết nối với phần trước newline \z Kết nối với phần cuối chuỗi \G Kết nối với điểm mà kết nối cuối tìm thấy \b Kết nối với giới hạn từ bên dấu [] Kết nối với backspace (mã 0x08) bên dấu [] \B Kết nối với giới hạn từ \n, \t, etc Kết nối với newline, carriage return, tab, \1 \9 Kết nối với biểu thức nhóm thứ n \10 Kết nối biểu thức nhóm thứ n kết nối Nếu khơng, tham chiếu tới biểu diễn bát phân mã ký tự Ví dụ lớp ký tự Python Ví dụ Miêu tả [Pp]ython Kết nối với "Python" "python" rub[ye] Kết nối với "ruby" "rube" [aeiou] Kết nối với nguyên âm http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/python/index.jsp Copyright © vietjack.com [0-9] Kết nối với ký số nào, giống dạng [0123456789] [a-z] Kết nối với chữ thường ASCII [A-Z] Kết nối với chữ hoa ASCII [a-zA-Z0-9] Kết nối với [^aeiou] Kết nối với ngoại trừ nguyên âm [^0-9] Kết nối với ngoại trừ ký số http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... searchObj.group() : Hoc Python la de hon hoc Java? searchObj.group(1) : Hoc Python searchObj.group(2) : de Phân biệt match search Python Python cung cấp hai hoạt động sở dựa Reguler Expression, là: match... biểu thức đặt trước a| b Kết nối với a b (re) Nhóm Regular Expression ghi nhớ text kết nối (?imx) Bật toggle tạm tời tùy chọn i, m x bên Regular Expression Nếu cặp dấu ngoặc đơn khu vực bị ảnh hưởng... , B re.X Cho phép cú pháp "cuter" regular expression Nó bỏ qua khoảng trống trắng whitespace (ngoại trừ bên [] tránh ) coi # dạng comment Các Pattern Python Ngoại trừ ký tự điều khiển, (+

Ngày đăng: 02/12/2017, 12:30

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w