Báo cáo Phương pháp xây dựng phần mềm: Regular expression
lượt xem 9
download
Báo cáo Phương pháp xây dựng phần mềm "Regular expression" giới thiệu đến các bạn những nội dung về regular expression, khái niệm regular expression, cú pháp regular expression, group và lookaround,... Với các bạn đang học chuyên ngành Công nghệ thông tin thì đây là tài liệu tham khảo hữu ích.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Báo cáo Phương pháp xây dựng phần mềm: Regular expression
- PHƯƠNG PHÁP XÂY DỰNG PHẦN MỀM – REGULAR EXPRESSION BÁO CÁO MÔN: PHƯƠNG PHÁP XÂY DỰNG PHẦN MỀM CHỦ ĐỀ: REGULAR EXPRESSION Thành viên nhóm: Vũ Công Tịnh Hà Hải Hùng Nghiêm Xuân Sơn I- Giới thiệu Regular Expression Trong cuộc sống hằng ngày, con người chúng ta diễn đạt một ý niệm hay một việc làm qua lời nói, cử chỉ hay bằng chữ viết. Bởi vì con người chúng ta có 5 giác quan khác nhau và những giác quan đó giúp chúng ta hiểu được vấn đề qua sự nhìn, nghe, ngửi, nếm, cảm thấy. Nói một cách tổng quát, trong xã hội văn minh thì chúng ta làm việc và tiếp xúc với nhau qua cách dùng ngôn ngữ. Như người Việt thì dùng tiếng Việt để trao đổi tin tức hay diễn đạt một vấn đề. Nhưng máy tính thì không có những giác quan như con người chúng ta, vậy làm sao chúng ta có thể trao đổi thông tin với vi tính một cách đơn giản nhưng hiệu quả? Theo toán học, thành ngữ là một tập hợp của chữ viết. Mỗi chữ viết bao gồm một chuỗi ký tự xác định (a language is a set of finite string; a string is a finite sequence of symbols Appel 1998). Cho nên nếu con người có thể diễn tả một tập hợp chữ viết bằng một phương pháp nào đó thì nó tương đương với việc diễn tả một thành ngữ. Cấu trúc đại diện hay Regular Expression (Regex) là một dạng viết ngắn gọn để mô tả một tập hợp chữ viết và có thể tạm dịch là một phương pháp dùng để mô tả hay diễn đạt thành ngữ một cách ngắn gọn và hiệu quả. Ví dụ như để diễn tả một tập hợp chữ chỉ chứa những chữ cái và chỉ chữ cái mà thôi (a set of string contains only alphabet), thì Regex có thể diễn tả câu nói trên ngắn gọn như sau: [azAZ]* II- Khái niệm cơ bản - Toán tử “or”: Được ngăn cách bởi dấu “|”. Ví dụ: ktmpk10b|ktpmk10a thì cả ktpmk10b và ktpmk10a đều hợp lệ. - Nhóm: Sử dụng dấu ngoặc đơn “(” và “)” để nhóm các nhóm trong Regex nhằm xác định phạm vi và khai thác dữ liệu. Ví dụ: k10aktmpm|k10bktpm và k10(a|b)ktpm là 2 Regex tương đương nhau đều mô tả 2 lựa chọn k10aktpm và k10bktpm.
- PHƯƠNG PHÁP XÂY DỰNG PHẦN MỀM – REGULAR EXPRESSION - Định lượng: Được sử dụng để định nghĩa số lượng của 1 thành phần hoặc 1 nhóm về mức độ thường xuyên mà thành phần đó xảy ra, thường gặp nhất là dấu hỏi chấm, dấu cộng và dấu sao. Dấu ?: Cho biết thành phần đó có thể xuất hiện 1 lần hoặc không xuất hiện. Ví dụ: k10b?ktpm , như vậy dấu ? theo sau ký tự “a” nên “a” có thể có hoặc không. Dấu *: Cho biết thành phần có thể không xuất hiện hoặc xuất hiện nhiều lần. Ví dụ: ab*c, các giá trị hợp lệ sẽ là: ac, abc, abbc, abbbc,… Dấu +: Tương tự như dấu *, tuy nhiên thành phần phải xuất hiện ít nhất 1 lần. Ví dụ: ab*c thì các giá trị hợp lệ: abc, abbc, abbbc. {n}: Thành phần đứng trước lặp lại n lần. Ví dụ: a{3}b, thì giá trị hợp lệ sẽ là: aaab {min,}: Thành phần đứng trước lặp lại tối thiểu min lần. Ví dụ: a{3,}b thì giá trị hợp lệ sẽ là: aaab, aaaab, aaaaab,… {min,max}: Thành phần đứng trước lặp trong khoảng từ min tới max. Ví dụ: a{2,4}, thì giá trị hợp lệ là: aab, aaab, aaaab. III- Cú pháp 1. Cú pháp cơ bản trong Regex . Hợp lệ với các ký tự đơn bất kỳ( trừ các dòng mới trong 1 số ứng dụng). Ví dụ: a.b thì các giá trị hợp lệ là: aab, acb, adb, axb, a2b,… Tuy nhiên [a.b] thì sẽ được hiểu là: “a” hoặc “.” hoặc “b” [ ] Là một biểu thức hợp lệ với các ký tự đơn chứa trong dấu ngoặc vuông []. Ví dụ: [abc] hợp lệ với: hoặc a, hoặc b, hoặc c. [az] sử dụng xác định phạm vi các ký tự từ a đến z. Tương tự [09] phạm vi ký tự số từ 0 đến 9. Chúng ta có thể sử dụng kết hợp như [abcxz] đúng với "a", "b", "c", "x", "y", hoặc "z", đoạn regex kia cũng có thể viết gọn hơn là [acxz]. [^ ] Phép phủ định trong Regex. Ví dụ: [^abc] hợp lệ khi các ký tự đó không phải là a, b hoặc c. ^ Regex này lấy vị trí hợp lệ từ đầu dòng trong 1 chuỗi. $ Hợp lệ với vị trí cuối cùng của 1 chuỗi. ( ) Được sử dụng để định nghĩa một expression con hay còn gọi là nhóm
- PHƯƠNG PHÁP XÂY DỰNG PHẦN MỀM – REGULAR EXPRESSION hoặc 1 khối, có thể sử dụng để gọi lại khi cần. * Cho biết thành phần có thể không xuất hiện hoặc xuất hiện nhiều lần. Ví dụ: ab*c, các giá trị hợp lệ sẽ là: ac, abc, abbc, abbbc,… {min,max} Thành phần đứng trước lặp trong khoảng từ min tới max. Ví dụ: a{2,4}, thì giá trị hợp lệ là: aab, aaab, aaaab. Ví dụ: .at: Các từ có 3 ký tự theo sau là “at”. Hợp lệ: cat, mat, hat, bat, tat,… [hc]at: Hợp lệ hat hoặc cat. Có thể sử dụng hat|cat cũng có ý nghĩa tương tự. [^b]at: Tất cả các từ 3 ký tự theo sau là “at” ngoại trừ “bat”, vì trong ngoặc vuông loại ký tự b. [^hc]at: Tất cả các từ 3 ký tự theo sau là “at” ngoại trừ “hat” và “cat”. ^[hc]at: Hợp lệ với “hat” và “cat” nếu từ đó bắt đầu ở đầu dòng, các từ không bắt đầu ở đầu dòng không hợp lệ. t.*: Hợp lệ với các từ bắt đầu bởi chữ t, theo sau có thể là bất kỳ ký tự đơn nào hoặc không có. Ví dụ: t, ti, tinh,… 2. Các lớp ký tự Cú pháp Cú pháp Mô tả tương đương( n ếu có) [AZaz] \a Chỉ ký tự chữ cái hoa và thường. Ví dụ: t\at, thì các từ hợp lệ: tat, tbt, tAt, tct, tdt, … [AZaz09] Chữ cái và chữ số. Ví dụ: KTPMK[AZa z09] Các giá trị hợp lệ: KTPM1, KTPMA, KTPM9, KTPMB [AZaz09_] \w Chữ cái, chữ số và dấu gạch dưới [^AZaz09_] \W Không là ký tự chữ cái, chữ số, dấu gạch dưới [\t\r\n\v\f \s Khoảng trắng [09] \d Chữ số [^09] \D Không là chữ số [az] \l Chữ cái thường
- PHƯƠNG PHÁP XÂY DỰNG PHẦN MỀM – REGULAR EXPRESSION [^ \t\r\n\v\f] \S Không phải khoảng trắng [AZ] \u Chữ cái hoa [AFaf09] \x Chữ số hệ 16 \character Các ký tự đặc biệt khi sử dụng phải thêm ký tự \ vào trước. Ví dụ: \@, \?, \\, \/,… 3. Group và Lookaround Cú pháp Mô tả ( ) Để nhóm các expression trong Regex chúng ta sử dụng cú pháp “( )”, đặt các thành phần muốn nhóm vào trong ngoặc tròn. Ví dụ: (ti)+, các giá trị hợp lệ: tin, tinh, tinhh,… (?:abc) Nhóm nhiều mã với nhau mà không cần tạo 1 nhóm để gộp. Ví dụ: (?:abc)+ thì các giá trị hợp lệ: abc,abcabcabc , abcabc, abcabcabc,… với abc lặp liên tục. (?=abc) Position Lookahead. Kiểm tra điều kiện ở phía sau của Regex, lúc này con trỏ đặt đầu regex( phía trước abc của 1 chuỗi). Ví dụ:Lấy phần đầu của Gmail /[^\s]+(?=@gmail\.com)/ Hợp lệ: vucongtinh@gmail.com Không hợp lệ: vucongtinh@yahoo.com (?!abc) Negative Lookahead: Ngược lại với (?=abc), nếu bạn muốn tìm phần đầu của email không phải của Gmail thì bạn dung như ví dụ trên sử dụng (?!) (?
- PHƯƠNG PHÁP XÂY DỰNG PHẦN MỀM – REGULAR EXPRESSION Một số ứng dụng trong lập trình web: 1. HTML5 Trong HTML5, các thẻ input được bổ sung thêm thuộc tính pattern nhằm đưa Regex vào để kiểm tra dữ liệu vào. Ví dụ: - Kiểm tra mật khẩu phải ít nhất 6 ký tự bất kỳ Password:
- PHƯƠNG PHÁP XÂY DỰNG PHẦN MỀM – REGULAR EXPRESSION 3. Trong PHP Để thực thi Regex trong PHP có thể dụng 1 số hàm: preg_match(), preg_match_all(), preg_replace(), preg_grep(), preg_split(). Ví dụ: Lấy phần đầu của Gmail $email=”vucongtinh@gmail.com”; If(preg_match(“/^(\w+)(?=\@gmail.com)/”,$email,$matchs)){ Echo $matchs[1]; } Else echo “Invalid email”; Trường hợp trên $matchs là mảng kết quả trả về.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Phương pháp viết báo cáo, thông báo
10 p | 596 | 122
-
Phương pháp xây dựng lưới và xử lý số liệu đo lún công trình cao tầng
66 p | 205 | 72
-
Báo cáo: Nghiên cứu xây dựng quy hoạch môi trường vùng kinh tế trọng điểm miền Trung
279 p | 192 | 48
-
Báo cáo đồ án: Xây dựng cấu trúc hệ điều khiển với 2 mạch vòng dòng điện và tốc độ dùng phương pháp vetor trực tiếp và mô phỏng hệ điều khiển trong Simulink
26 p | 190 | 32
-
Nghiên cứu áp dụng phương pháp xây dựng lộ trình công nghệ trong đổi mới công nghệ ở Việt Nam
65 p | 171 | 32
-
Báo cáo: Nghiên cứu xây dựng quy trình sản xuất dòng mẹ đơn tính cái (Gynoecious) để sản xuất hạt giống dưa chuột lai F1
7 p | 269 | 23
-
Báo cáo khoa học: "Về phương pháp xây dựng chiến lược kinh doanh của tổng công ty xây dựng công trình"
4 p | 88 | 20
-
Báo cáo thực tập: Ứng dụng Ddos để khai thác thông tin
49 p | 118 | 15
-
Báo cáo khoa học: Phương pháp lọc thư rác tiếng Việt dựa trên từ ghép và theo vết người sử dụng
11 p | 127 | 14
-
Báo cáo khoa học: "Xây dựng đặc tính cơ giới của động cơ điện kéo bằng phương pháp lý thuyết"
5 p | 113 | 12
-
Báo cáo khoa học: "Phương pháp Xây dựng đặc tính cơ điện cho động cơ điện kéo đầu máy diesel"
8 p | 82 | 12
-
Báo cáo: Phương pháp bảo quản lúa giống và lúa thịt truyền thống
34 p | 100 | 10
-
Báo cáo khoa học: "XÂY DỰNG PHƯƠNG PHÁP THI TRẮC NGHIỆM KHÁCH QUAN MỚI"
6 p | 84 | 9
-
Báo cáo Vật liệu xây dựng - Môi trường: Nghiên cứu ảnh hưởng của ÔXYT sắt Fe2O3 đến sự hình thành khoáng trong đá xi măng trắng có Metakaolin
8 p | 102 | 5
-
Báo cáo khoa học: "BÀN VỀ MỘT VÀI PHƯƠNG PHÁP DỰ BÁO THÍCH NGHI"
5 p | 68 | 5
-
Báo cáo "Phương pháp xây dựng sơ đồ nối điện tối ưu với sự hỗ trợ của vi tính"
6 p | 38 | 5
-
Báo cáo " Xây dựng hệ thống dự báo tổ hợp bão ở Biển Đông hạn 5 ngày bằng phương pháp nuôi nhiễu "
7 p | 90 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn