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:
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:
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:
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]). |
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