Monday

Giới thiệu vể biểu thức quy tắc (Regular Expression)


1. Khái niệm:
Một biểu thức quy tắc là một mẫu để mô tả một chuỗi các ký tự chia sẻ chung mẫu đó.
Ví dụ: một mẫu mô tả email (lưu ý mẫu ví dụ ở đây không được định nghĩa theo biểu thức quy tắc):
                                        string + @ + string + '.' + string
          Các chuỗi ứng với mẫu này:
                                        jbohn@gmail.com
                                        java@hotmail.com
                                        bohn@oracle.net
                                        .....
2. Cú pháp mô tả một biểu thức quy tắc (mẫu)
Một số các phần tử thay thế được sử dụng để mô tả một biể thức quy tắc:
. Bất kỳ ký tự nào.
? Không (0) hoặc một (1) của ký tự đứng trước.
* Không (0) hoặc lớn hơn của ký tự đứng trước.
+ Một (1) hoặc lớn hơn của ký tự đứng trước.
[] Một dải các ký tự hay chữ số. Ví dụ: [0-9], [a-z]
^ Không phải cái tiếp sau (tức là, "không phải <cái gì đó>").
\d Bất kỳ số nào (tùy chọn, [0-9]).
\D Bất kỳ cái gì không là số (tùy chọn, [^0-9]).
\s Bất kỳ khoảng trống nào (tùy chọn, [ \n\t\f\r]).
\S Không có bất kỳ khoảng trống nào (tùy chọn, [^ \n\t\f\r]).
\w Bất kỳ từ nào (tùy chọn, [a-zA-Z_0-9]).
\W Không có bất kỳ từ nào (tùy chọn, [^\w]).
Một số phần tử đầu tiên ở đây được gọi là các lượng tử ((quantifiers), bởi vì chúng xác định số lượng cái đứng trước chúng. Các cấu kiện như là \d là các lớp ký tự được định nghĩa trước. Bất kỳ ký tự nào mà không có ý nghĩa đặc biệt trong một mẫu sẽ là một trực kiện và chỉ khớp với chính nó.

Ví dụ:
Giả sử có chuỗi ký tự sau:
Here is a WikiWord followed by AnotherWikiWord, then YetAnotherWikiWord.

Bạn có thể tìm kiếm các từ wiki trong chuỗi này với mẫu biểu thức chính quy như sau:
[A-Z][a-z]*([A-Z][a-z]*)+
 
 
                              http://jbohn.blogspot.com 

0 comments:

Post a Comment