Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
630,5 KB
Nội dung
Lập trình hướng đối tượng Bài 10: Biểu thức quy Giới thiệu • Biểu thức quy (regular expression) đặc điểm bổ sung vào thư viện chuẩn C++11 • Là ngôn ngữ khai báo cho việc xử lý chuỗi • Cú pháp mặc định C++11 ECMAScript ^$\.*+?()[]{}| • Sử dụng ký tự \ (escape character) cần thể ký tự đặc biệt chuỗi • Thí dụ: \[ \ Hoặc \* \\ Lưu ý: C++ để có ký tự \ cần vào \\ • Thí dụ ^test$ - Khớp: test - Không khớp: 1test, test2, test abc • a.c - Khớp: abc a5c - Không khớp: ab5c, ac • a*b - b, ab, aab, aaaab • a+b - Khớp ab, aab, aaaab không khớp b • a?b - Khớp b ab • ^a{3,4}$ - Khớp aaa aaaa không khớpLặp a, aa,tham aaaaa • a|b - Khớp a b lam/không tham lam (?) Nhóm • () tạo biểu thức con, tạo nhóm (capture group) • Thứ tự: – Elements: like aare the basic building blocks of a regular expression – Quantifiers: like +, *, ?and { }bind tightly to the element on the left, for example b+ – Concatenation: like ab+cbinds after quantifiers – Alternations: like | binds as last • Thí dụ: – ab+c|d – ab+(c|d) • Không tạo capture group sử dụng {?:…} • Thí dụ: ab+(?:c|d) Tập ký tự • ab[cde] khớp với abc, abd abe • ab[^cde] khớp với abf, abp không khớp với abc, abd abe • Xác định dải ký tự [a-zA-Z] Biên từ \b, biên từ \B Tham chiếu ngược \n Thí dụ: ^(\d+)-.*-\1$ Khớp: 123-abc-123, 1234-a-1234 Nhưng không: 123-abc-1234, 123-abc-321 Sử dụng raw string • Thay vì: ( |\\n|\\r|\\\\) • Viết R”(( |\n|\r|\\))” Thư viện regex • dạng khuôn hình bản: – basic_regex – match_results – sub_match • giải thuật chính: – regex_match() – regex_search() – regex_replace() 10 regex_search() 11 regex_iterator 12 regex_token_iterator 13 regex_replace() 14 [...]...regex_search() 11 regex_iterator 12 regex_token_iterator 13 regex_replace() 14 ... th c quy (regular expression) đ c điểm bổ sung vào thư viện chuẩn C+ +11 • Là ngôn ngữ khai báo cho vi c xử lý chuỗi • C pháp m c định C+ +11 ECMAScript ^$.*+?()[]{}| • Sử dụng ký tự (escape character)... character) c n thể ký tự đ c biệt chuỗi • Thí dụ: [ Ho c * \ Lưu ý: C+ + để c ký tự c n vào \ • Thí dụ ^test$ - Khớp: test - Không khớp: 1test, test2, test abc • a .c - Khớp: abc a 5c -... lam/không tham lam (?) Nhóm • () tạo biểu th c con, tạo nhóm (capture group) • Thứ tự: – Elements: like aare the basic building blocks of a regular expression – Quantifiers: like +, *, ?and {