tìm hiểu regular expression trong java

38 665 0
tìm hiểu regular expression trong java

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TÌM HIỂU REGULAR EXPRESSION TRONG JAVA Thành viên nhóm: 1.Đặng Quang Hải: 081246T 2.Nguyễn Hoàng Dũng: 081238T GVHD:Phan Văn Sim Anh MỤC LỤC 1. Đặt vấn đề 2. Khái niệm Regular Expression là gì? Vai trò của nó? 3. API là gì? API của biểu thức chính quy? 4. Một số phương thức của lớp Pattern 5. Một số phương thức của lớp Matcher 6. Cú pháp mẫu 7. Ví dụ 1. Đặt vấn đề Trong các ứng dụng java cần thực hiện và thao tác với các chuỗi, các lớp StringTokenizer và String được sử dụng rất nhiều, việc này làm phức tạp code và trở thành cơn ác mộng đối với việc bảo trì. Thường thì các ứng dụng java sẽ tìm kiếm sự xuất hiện của một ký tự hay một dấu hiệu (token) cụ thể nào đó trong một String, sau đó tìm 1 chuỗi bao nó và rồi kiểm tra tính hợp lệ của chuỗi được tách ra. VD: Để xác định tính hợp lệ của một địa chỉ email, ta có thể kiểm tra sự xuất hiện của dấu ‘@’ và sau đó là một hay nhiều dấu ‘.’, việc đó có thể được thực hiện như sau: 1. Đặt vấn đề (tt) String str = dangquanghai@gmail.com; int indexofAtchar = str.indexof(“@”); if(indexofAtchar > 0) { int indexofDotchar = str.indexof(“.”,indexofAtchar); if(indexofDotchar > 0) { system.out.println(“email hop le!”); } else System.out.println(“email ko hop le”+”ko tim thay ‘.’ sau ‘@’”); else System.out.println(“email ko hop le ”+”ko tim thay ky tu ‘@’”); 1. Đặt vấn đề (tt) Kết quả của đoạn code này là: email hop le! Vậy có cách nào ngắn hơn để giải quyết bài toán dạng này không? Câu trả lời là: từ JDK 1.4 trở lên có hỗ trợ regular expression trong gói Java.util.regex việc sử dụng gói này và các lớp hỗ trợ cho việc tìm kiếm và thao tác trên chuỗi trở nên đơn giản hơn rất nhiều. Nó giúp giảm bớt áp lực phải cố gắng và thêm đó là cải thiện đáng kề việc bảo trì. 1. Đặt vấn đề (tt) a) Khái niệm Regular Expression: Regular Expression hay còn gọi là biểu thức chính quy là một chuỗi miêu tả một bộ các chuỗi khác nhau, theo những quy tắc cú pháp nhất định. Hay nói cách khác Regular Expression là 1 cái khuôn được tạo ra để so khớp với 1 hay nhiều ký tự đầu vào để kiểm tra tính hợp lệ của nó, tìm kiếm sự xuất hiện của nó trong chuỗi khác. 2. Regular Expression Regular Expression là gì, vai trò của nó trong các ứng dụng Java??? b) Vai trò của Regular Expression (regex) trong các ứng dụng Java - Phân tích cú pháp - Xác định tính hợp lệ của dữ liệu - Xử lý chuỗi - Tách dữ liệu và tạo các báo cáo Do đó việc nắm vững regex sẽ giúp bạn tiết kiệm thời gian và công sức trong việc thao tác và trích dẫn văn bản trên máy tính đặc biệt là trong các ứng dụng của Java. 2. Regular Expression (tt) API là gì? API của biểu thức chính quy? a) API (Application Programming Interface) Là một giao diện mà một hệ thống máy tính hay ứng dụng cung cấp cho phép các yêu cầu dịch vụ có thể được tạo ra từ các chương trình máy tính khác, và/hoặc cho phép dữ liệu có thể được trao đổi qua lại giữa chúng. Chẳng hạn một chương trình máy tính có thể dùng các hàm API của hệ điều hành để xin cấp phát bộ nhớ và truy xuất tập tin. 3. API Nhiều loại hệ thống và ứng dụng hiện thực API như các hệ thống đồ họa, cơ sỡ dữ liệu, dịch vụ web. Đây là phần mềm hệ thống cung cấp đầy đủ các chức năng và các tài nguyên mà các lập trình viên có thể lấy ra và từ đó tạo nên các tính năng giao tiếp người – máy: như các trình đơn kéo xuống, hộp thoại giúp tiết kiệm được nhiều thời gian. 3. API (tt) [...]... chuỗi đầu vào phải giống 5 Matcher (tt) d) Phương thức find() Tìm kiếm 1 phần Thử tìm kiếm chuỗi tiếp theo của chuỗi đầu vào phù hợp vời chuỗi mẫu, phương thức này bắt đầu từ đầu chuỗi đầu vào hoặc tiếp nối ở vị trí tìm kiếm tiếp theo sau một kết quả tìm kiếm thành công find() đặc biệt hữu dụng khi bạn quan tâm đến tất cả các chuỗi con trong chuỗi đầu vào phù hợp với khuôn mẫu được cung cấp 5 Matcher... flag2 = matcher2.matches();//false } } 5 Matcher (tt) Chú ý: bạn ko thể sử dụng phương thức này để tìm kiếm 1 biểu thức chính quy xuất hiện nhiều lần trong 1 text.Để làm điều này bạn có cần sử dụng phương thức find() ,end() c) Phương thức lookingAt() Tìm kiếm 1 phần Cú Pháp: boolean lookingAt(); Thử tìm kiếm chuỗi đầu vào, bắt đầu dựa trên khuôn mẫu Giống như phương thức matches(), phương thức luôn... matches.matches();//false vì ko được có thêm ký tự trước và sau biểu thức 5 Matcher (tt) e) Phương thức Start() và end() Trả về chỉ số đầu và cuối của biểu thức chính quy trong 1 đoạn khi được tìm thấy, nó thường kết hợp với hàm find() tìm chuỗi con trong chuỗi cha và muốn xuất ra vị trí đầu và vị trí cuối 5 Matcher (tt) VD: String text = “this is the text which is to be seareched”+”for occurrences of the the... Và ký số này nằm trong khoảng 10 đến 11 ký số(‘{10,11}’) - Và ngay sau đó bắt buộc kết thúc chuỗi(‘$’) 7 Ví dụ (tt) =>cú pháp mẫu là: "^\\d{10,11}$“; Kết quả của bài toán: 0h1654507j6 ko phai la so dien thoai hihi! 01654507760 la so dien thoai b) Kiểm tra chuỗi nhập vào có phải là địa chỉ email ko? package Email; 7 Ví dụ (tt) import java. util.Scanner; import java. util.regex.*; import java. io.*; public... matches(): Kiểm tra chuỗi đầu vào có đúng với biểu thức trong pattern hay ko? 4 Pattern (tt) VD: String text = “this is the text to be searched”+”forn occurrences of the pattern”; Pattern pattern = Pattern.compile(“.*is.*”); boolean matches = Pattern.matches(pattern,text); System.out.println(“matches = ”+matches); Giải thích: ví dụ này tìm kiếm chuỗi ở trong biến text cho sự xuất hiện của từ ‘is’, cho phép... Matcher cung cấp phương thức matches() để kiểm tra sự giống nhau chính xác =>Cụ thể: cố gắng tìm kiếm dãy đầu vào dựa trên khuôn mẫu Method này chỉ thành công nếu toàn bộ dãy ký tự đầu vào là giống nhau hoàn toàn 5 Matcher (tt) Cú Pháp:boolean matches = matcher.matches(); VD:import java. util.regex; import Java. until.*; Public class exactmatch { public static void main(String args[]) { Pattern pat=... 2:5- 7 Found 3:23 – 25 found 4:70 – 72 6 Cú pháp mẫu Một mẫu (pattern) biểu thức chính quy mô tả cấu trúc của chuỗi ký tự mà một biểu thức sẽ cố gắng tìm kiếm trong một chuỗi ký tự đầu vào Sau đây là một số các cấu kiện mẫu phổ biến mà bạn có thể sử dụng trong các chuỗi ký tự mẫu 6 Cú pháp mẫu (tt) a) chacracter: Construct Matches x Tất cả các ký tự đều có thể sử dụng tại vị trí của x \ Dấu gạch chéo... chính quy trong ngôn ngữ Java gồm có ba lớp cốt lõi mà bạn sử dụng hầu như mọi lúc: Pattern : mô tả một mẫu chuỗi nhất định Matcher : Kiểm tra một chuỗi ký tự xem nó có khớp với mẫu ko? PatternSyntaxException: để báo cho bạn biết rằng có một số thứ ko thể chấp nhận được với mẫu mà bạn đã thử định nghĩa 4 Pattern Một số phương thức cơ bản của lớp Pattern a) Pattern.compile(): Biên dịch biểu thức trong. .. Pattern (tt) Giải thích: Ví dụ này sẽ tách đoạn văn bản trong biến text thành 5 dãy strings riêng biệt và chúng sẽ được nạp vào mảng String e) pattern.pattern() Phương thức này chỉ đơn giản trả về một pattern khi pattern được biên dịch VD:String patternString = “sep”; Pattern pattern = Pattern.compile(patternString); String pattern2 = Pattern.pattern(); Trong ví dụ này thì biến pattern2 sẽ chứa cả giá trị... | Ngăn cách các biểu thức có thể so trùng, ví dụ AAA|ABA|ABB sẽ so trùng với AAA,ABA hoặc ABB () Xác định một biểu thức con sao cho nó được xem như một yếu tố đơn lẻ đối với các yếu tố được trình bày trong bảng này {n} Xác định có đúng n ký tự hoặc biểu thức con đứng trước nó,ví du A{2} thì chỉ so trùng với AA {n,m} Xác định có n đến m ký tự đứng trước nó ví dụ: A{2,4} so trùng với AA,AAA,AAAA nhưng . của nó, tìm kiếm sự xuất hiện của nó trong chuỗi khác. 2. Regular Expression Regular Expression là gì, vai trò của nó trong các ứng dụng Java? ?? b) Vai trò của Regular Expression (regex) trong. TÌM HIỂU REGULAR EXPRESSION TRONG JAVA Thành viên nhóm: 1.Đặng Quang Hải: 081246T 2.Nguyễn Hoàng Dũng: 081238T GVHD:Phan Văn Sim Anh MỤC LỤC 1. Đặt vấn đề 2. Khái niệm Regular Expression. niệm Regular Expression: Regular Expression hay còn gọi là biểu thức chính quy là một chuỗi miêu tả một bộ các chuỗi khác nhau, theo những quy tắc cú pháp nhất định. Hay nói cách khác Regular Expression

Ngày đăng: 25/11/2014, 07:50

Mục lục

  • 1. Đặt vấn đề (tt)

  • API là gì? API của biểu thức chính quy?

  • Một số phương thức cơ bản của lớp Pattern

  • Một số phương thức cơ bản của lớp Matcher

Tài liệu cùng người dùng

Tài liệu liên quan