Ktl-icon-tai-lieu

Regular Expressions

Được đăng lên bởi dktin3bbackup-gmail-com
Số trang: 13 trang   |   Lượt xem: 1673 lần   |   Lượt tải: 1 lần
Vì yêu cầu công việc (cụ thể là làm cái trang tin tức cho phpvn), hum nay t ớ
quyết định xông pha vào cái chốn đầy gai góc này thử xem sao (ngày th ường
thấy nó là chạy liền
). Thực ra thì công việc ở trên cũng ko cần yêu cầu cao
lắm, nhưng dù sao đã mất công tìm hiểu thì làm t ới bến luôn. Bài viết này l ược
dịch từ  Hiểu đến đâu viết đến đấy, sai chỗ
nào mong bà con alô thông báo giùm.
-----------------------------------------Mở đầu
Regular Expressions là gì?
Regular Expressions (Regex) dịch ra tiếng Việt là Biểu thức chính quy. Khái niệm
này nằm trong 1 mớ lý thuyết vô cùng đồ sộ và hầm hố
. Nhưng ko nên lo
lắng, ta có thể hiểu nôm na Regex là 1 cái mẫu (pattern) dùng để mô tả 1 l ớp ký
tự nào đó.
VD: lazydog là 1 regex. Nó là 1 mẫu đơn giản nhất vì nó so khớp (match) với
đoạn textlazydog. 1 match là 1 đoạn text so khớp với mẫu.
VD phức tạp hơn 1 chút: \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b Đây là
mẫu mô tả 1 địa chỉ email. Mẫu này có thể dc dùng để tìm 1 địa chỉ email trong
1 đoạn văn bản, hoặc kiểm tra xem 1 chuỗi có phải là địa chỉ email hợp lệ hay
ko.
Regex có thể dc sử dụng với bất kỳ dữ liệu nào mà ta có thể truy cập, thông qua
ứng dụng hoặc ngôn ngữ lập trình. Có thể kể đến 1 s ố ứng d ụng xử lý văn b ản
hỗ trợ regex: PowerGREP, EditPad Pro, RegexBuddy,...
Regular Expression Engines
Regex engine là 1 bộ phận của phần mềm, chuyên để xử lý regex (so kh ớp m ẫu
với 1 chuỗi nào đó). Có nhiều regex engine và chúng ko hoàn toàn t ương thích
với nhau. Cú pháp regex (flavor) của mỗi engine c ũng có sự khác nhau. Loạt bài
này sẽ tập trung vào cú pháp regex dc sử dụng trong Perl 5, vì nó ph ổ biến nh ất.
Rất nhiều engine regex khác giống với engine sử dụng trong Perl 5: engine
nguồn mở PCRE (sử dụng trong rất nhiều ngôn ngữ lập trình, nh ư PHP, cái ta c ần
đây hehe

), thư viện regex .NET,...

OK vậy là ta đã hiểu sơ qua regex là cái gì, giờ để tấn công vào cái địa ng ục này,
ta cần có vũ khí. Có thể sử dụng 1 số ứng dụng xử lý text ở trên để thực hành

các biểu thức regex, hoặc ko thì ta tự tạo lấy 1 cái thô sơ bằng PHP.
Trong PHP, ta có thể sử dụng biểu thức regex thông qua các hàm regex. PHP
cung cấp 3 nhóm hàm regex, tên của chúng dc b ắt đầu b ởi: ereg, mb_ereg và
preg. 2 loại đầu sử dụng engine POSIX Extended, còn preg s ử dụng engine PCRE
(Perl-Compatible). Vậy thì vũ khí của ta đơn giản chỉ là đoạn mã PHP sau:
<?php
$string = 'chuỗi cần áp dụng biểu thức regex';
$pattern = '/biểu thức regex/';
preg_match($p...
Vì yêu c u công vi c (c th là làm cái trang tin t c cho phpvn), hum nay t
quy t nh xông pha vào cái ch n y gai góc này th xem sao (ngày th ng ế đị đầ ườ
th y nó là ch y li n ). Th c ra thì công vi c trên c ng ko c n yêu c u cao ũ
l m, nh ng dù sao ã m t công tìm hi u thì làm t i b n luôn. Bài vi t này l c ư đ ế ế ượ
d ch t http://www.regular-expressions.info/. Hi u n âu vi t n y, sai ch đế đ ế đế đấ
nào mong bà con alô thông báo giùm.
------------------------------------------
M u đầ
Regular Expressions là gì?
Regular Expressions (Regex) d ch ra ti ng Vi t là Bi u th c chính quy. Khái ni m ế
này n m trong 1 m lý thuy t vô cùng s và h m h ế đồ . Nh ng ko nên lo ư
l ng, ta có th hi u nôm na Regex là 1 cái m u (pattern) dùng mô t 1 l p ký để
t nào ó. đ
VD: lazydog là 1 regex. Nó là 1 m u n gi n nh t vì nó so kh p (match) v i đơ
o n textđ ạ lazydog. 1 match là 1 o n text so kh p v i m u.đ ạ
VD ph c t p h n 1 chút: ơ \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b ây là Đ
m u mô t 1 a ch email. M u này có th dc dùng tìm 1 a ch email trong đ để đị
1 o n v n b n, ho c ki m tra xem 1 chu i có ph i là a ch email h p l hay đ ạ ă đị
ko.
Regex có th dc s d ng v i b t k d li u nào mà ta có th truy c p, thông qua
ng d ng ho c ngôn ng l p trình. Có th k n 1 s ng d ng x lý v n b n ữ ậ đế ă
h tr regex: PowerGREP, EditPad Pro, RegexBuddy,...
Regular Expression Engines
Regex engine là 1 b ph n c a ph n m m, chuyên x lý regex (so kh p m u để
v i 1 chu i nào ó). Có nhi u regex engine và chúng ko hoàn toàn t ng thích đ ươ
v i nhau. Cú pháp regex (flavor) c a m i engine c ng có s khác nhau. Lo t bài ũ
này s t p trung vào cú pháp regex dc s d ng trong Perl 5, vì nó ph bi n nh t. ế
R t nhi u engine regex khác gi ng v i engine s d ng trong Perl 5: engine
ngu n m PCRE (s d ng trong r t nhi u ngôn ng l p trình, nh PHP, cái ta c n ữ ậ ư
ây heheđ ), th vi n regex .NET,...ư
OK v y là ta ã hi u s qua regex là cái gì, gi t n công vào cái a ng c này, đ ơ để đị
ta c n có v khí. Có th s d ng 1 s ng d ng x lý text trên th c hành ũ để
Regular Expressions - Trang 2
Để xem tài liệu đầy đủ. Xin vui lòng
Regular Expressions - Người đăng: dktin3bbackup-gmail-com
5 Tài liệu rất hay! Được đăng lên bởi - 1 giờ trước Đúng là cái mình đang tìm. Rất hay và bổ ích. Cảm ơn bạn!
13 Vietnamese
Regular Expressions 9 10 741