Thứ Hai, 12 tháng 3, 2012

Kinh nghiệm regex

Lời nói đầu:
regular expression (hay còn gọi tắt là regex) là 1 công cụ rất mạnh về việc sử lý chuỗi.
Công cụ:
-Phiên bản trực tuyến: http://gskinner.com/RegExr/
-Download về máy tính: http://www.gskinner.com/RegExr/desktop/

*Một số lưu ý khi dùng regex trong các ngôn ngữ:
javascript: /regex/g,i,m
php: /regex/

*Nguyên tắc:
regex là 1 mẫu, sau khi nhập mẫu nó sẽ tìm mẫu đó cho bạn. Khi tìm được mẫu đầu tiên, nó sẽ tiếp tục tìm mẫu khác nếu thuộc tính global được bật lên.
So sánh 2 ví dụ sau:
Bài toán: tìm 1 ký tự chữ cái thuộc [a-z] tiếp đó là 1 ký tự trống or không có.


//tìm chuỗi xuất hiện đầu tiên.

//có or không ký tự A.
(A)?

//đến ký tự này rồi dừng lại tách ra & tiếp tục tìm mẫu mới. Note: tính cả ký tự đó.
?(x)

//đến ký tự đó.

//sử dụng hàm split, tách các chuỗi bởi 1 or nhiều ký tự nào đó.
ie: tách chuỗi bởi ký tự a, b: [^ab]

//chú ý hiệu ứng xuyên suốt, tìm bất kỳ ký tự nào.
.+
note: khi sử dụng hiệu ứng này nên cẩn thận vì nó sẽ gộp kết quả của bạn thành 1 chuỗi.
ví dụ: Bài toán trên nếu thêm hiệu ứng xuyên suốt ở đầu: lúc này nó đã tìm mọi ký tự, công việc tìm kiếm của bạn sau đó cũng vô nghĩa.

//tìm chuỗi ký tự nhưng chừa nó ra
(?<=*)ky_tu_sau_do...
ie: (?<=<u>)[\d]+(?<=<\/u>) với chuỗi: "<u>3467835435</u>"


0 nhận xét:

Đăng nhận xét

 
Copyright © hoangit