Regular Exdpression Functions cơ bản 2007-07-09 09:17:55
Một số ký tự đặc biệt mà nhiều bạn trong chúng ta thường kô để ý hoặc kô rõ. Đôi khi bạn gặp các hàm với chuỗi ký tự khó hiểu như: preg_match("/([a-z])+$/",$ip), đây là hàm kiểm tra sự tồn tại của một chữ (a - z) bất kỳ trong $ip, nghĩa là hàm này trả về true nếu có ít nhất một ký tự a -> z trong $ip và ngược lại.
Sau đây là ý nghĩa của các ký tự này:
Text:
. Bất kỳ ký tự đơn nào
[chars] Một trong số các ký tự ( vd: [a-c] : gồm a,b,c)
[^chars] Không có các ký tự (vd: [^a-c]: bao gồm tất cả các ký tự trừ a,b,c)
text1|text2 Hoặc là tex1 hoặc text 2 (vd: a|b gồm a hoặc b)
Quantifiers:
? 0 or 1 of the preceding text
* 0 or N of the preceding text (N > 0)
+ 1 or N of the preceding text (N > 1)
Grouping:
(text) Grouping of text
(either to set the borders of an alternative or
for making backreferences where the Nth group can
be used on the RHS of a RewriteRule with $N)
Anchors:
^ Bắt đầu bằng (vd: ^[a-z]: bắt đầu bằng một ký tự thuộc a->z
$ Kết thúc bằng ( vd: [a-z]$ : kết thúc bằng một ký tự thuộc a->z
Escaping:
char Lọai bõ giá trị ký tự đặc biệt
(for instance to specify the chars ".[]()" etc.)
Có một số từ tôi kô biết dịch sao cho chuyên môn, bạn nào hiểu ý dịch cho mọi người đọc
Kiểm tra sự tương đồng của một chuỗi.
^ : Khẳng định một chuỗi hoặc 1 dòng nào đó phải bắt đầu bằng một kí tự cụ thể.
VD : ^a Biểu thức này chỉ tương đương với những chuỗi nào có kí tự "a" (viết thường) ở vị trí đầu tiên : "aảioa"
$ : Khẳng định chuỗi so sánh phải kết thúc bằng một kí tự xác định.
. : Tương đương với bất kì kí tự nào ngoại trừ kí tự xuống dòng.
[ : Bắt đầu định hình một lớp.
] : Kết thúc việc định hình một lớp.
VD: [a-z]
Biểu thức này sẽ tương đương với những chuỗi mà trong nó chỉ chứa các kí tự từ a đến z được viết thường.
VD 2 : ^A[ct]ho$
Biểu thức này sẽ tương đương với những chuỗi được bắt đầu bằng kí tự "A" (viết HOA), sau nó có thể là 1 trong 2 kí tự "c" hoặc là "t" (viết thường) và cuối cùng phải là 2 kí tự "oh" (viết thường). Đó là một trong 2 chuỗi sau : "Acoh" hoặc là "Atoh".
| : Cho phép lựa chọn một trong số các kí tự xuất hiện trong biểu thức.
VD : ^(m|M|n|N)inj?$
Biểu thức sẽ tương đương với một trong các chuỗi sau : "min", "Min", "nin", "Nin" hoặc là "minj", "Minj", "ninj", "Ninj".
? : Cho phép lựa chọn sự xuất hiện hay không của một kí tự trong chuỗi.
VD : inj?$
Biểu thức này tương đương với những chuỗi có thể kết thúc bằng 3 kí tự "inj" hoặc chỉ cần 2 kí tự "in".
* : Cho phép lựa chọn sự tồn tại của nhiều kí tự trong một chuỗi.
VD : in*$
Biểu thức này sẽ tương đương với những chuỗi kết thúc là kí tự "i" hoặc là bất kì kí tự nào sau kí tự "in" như là "inàha".
+ : Xác định ít nhất 1 kí tự hoặc là nhiều hơn tồn tại trong chuỗi.
VD : in+
Biểu thức này sẽ tương đương với những chuỗi có chứa kí tự "i" và ít nhất 1 kí tự "n" đằng sau nó : "ini", "innnnn", "inna", "ákdfinksaljdfaos".
{ : Dấu hiệu bắt đầu xác định số lượng xuất hiện của một chuỗi.
} : Dấu hiệu kết thúc xác định số lượng xuất hiện của một chuỗi.
VD : M(in){2}
Biểu thức này sẽ tương đồng với những chuỗi có chứa kí tự M và tiếp sau nó là 2 lần chuỗi "in" : "Minin", "Mininakfjlsa", "lkasfjlMinin", "ahMinink".
VD 2 : mi(2,)ms(3,)
Biểu thức trên sẽ tương đồng với những chuỗi chưa kí tự "m" tiếp sau nó là ít nhất 2 kí tự "i" rồi đến kí tự "m" và tiếp theo sau là ít nhất 3 kí tự "s" : "miimsss", "miiiiimssss", "ámiimssssra".
VD 3 : (Mi-){2,5}cs
Biểu thức này sẽ tương đồng với những chuỗi có ít nhất là 2 chuỗi "Mi-" nhưng nhiều nhất là 5 tiếp theo sau là chuỗi "cs" : "Mi-Mi-cs", "Mi-Mi-Mi-cs", "Mi-Mi-Mi-Mi-Mi-cs", "ákdMi-Mi-csIkA".
^ : Phủ định sự tồn tại của một kí tự trong lớp. Nếu không dùng trong lớp thì nó có nghĩa khẳng định một chuỗi phải bắt đầu bằng một kí tự nào đó.
- : Chỉ định một số kí tự là cùng một dãy
Tác giả : TG
Sau đây là ý nghĩa của các ký tự này:
Text:
. Bất kỳ ký tự đơn nào
[chars] Một trong số các ký tự ( vd: [a-c] : gồm a,b,c)
[^chars] Không có các ký tự (vd: [^a-c]: bao gồm tất cả các ký tự trừ a,b,c)
text1|text2 Hoặc là tex1 hoặc text 2 (vd: a|b gồm a hoặc b)
Quantifiers:
? 0 or 1 of the preceding text
* 0 or N of the preceding text (N > 0)
+ 1 or N of the preceding text (N > 1)
Grouping:
(text) Grouping of text
(either to set the borders of an alternative or
for making backreferences where the Nth group can
be used on the RHS of a RewriteRule with $N)
Anchors:
^ Bắt đầu bằng (vd: ^[a-z]: bắt đầu bằng một ký tự thuộc a->z
$ Kết thúc bằng ( vd: [a-z]$ : kết thúc bằng một ký tự thuộc a->z
Escaping:
char Lọai bõ giá trị ký tự đặc biệt
(for instance to specify the chars ".[]()" etc.)
Có một số từ tôi kô biết dịch sao cho chuyên môn, bạn nào hiểu ý dịch cho mọi người đọc
Kiểm tra sự tương đồng của một chuỗi.
^ : Khẳng định một chuỗi hoặc 1 dòng nào đó phải bắt đầu bằng một kí tự cụ thể.
VD : ^a Biểu thức này chỉ tương đương với những chuỗi nào có kí tự "a" (viết thường) ở vị trí đầu tiên : "aảioa"
$ : Khẳng định chuỗi so sánh phải kết thúc bằng một kí tự xác định.
. : Tương đương với bất kì kí tự nào ngoại trừ kí tự xuống dòng.
[ : Bắt đầu định hình một lớp.
] : Kết thúc việc định hình một lớp.
VD: [a-z]
Biểu thức này sẽ tương đương với những chuỗi mà trong nó chỉ chứa các kí tự từ a đến z được viết thường.
VD 2 : ^A[ct]ho$
Biểu thức này sẽ tương đương với những chuỗi được bắt đầu bằng kí tự "A" (viết HOA), sau nó có thể là 1 trong 2 kí tự "c" hoặc là "t" (viết thường) và cuối cùng phải là 2 kí tự "oh" (viết thường). Đó là một trong 2 chuỗi sau : "Acoh" hoặc là "Atoh".
| : Cho phép lựa chọn một trong số các kí tự xuất hiện trong biểu thức.
VD : ^(m|M|n|N)inj?$
Biểu thức sẽ tương đương với một trong các chuỗi sau : "min", "Min", "nin", "Nin" hoặc là "minj", "Minj", "ninj", "Ninj".
? : Cho phép lựa chọn sự xuất hiện hay không của một kí tự trong chuỗi.
VD : inj?$
Biểu thức này tương đương với những chuỗi có thể kết thúc bằng 3 kí tự "inj" hoặc chỉ cần 2 kí tự "in".
* : Cho phép lựa chọn sự tồn tại của nhiều kí tự trong một chuỗi.
VD : in*$
Biểu thức này sẽ tương đương với những chuỗi kết thúc là kí tự "i" hoặc là bất kì kí tự nào sau kí tự "in" như là "inàha".
+ : Xác định ít nhất 1 kí tự hoặc là nhiều hơn tồn tại trong chuỗi.
VD : in+
Biểu thức này sẽ tương đương với những chuỗi có chứa kí tự "i" và ít nhất 1 kí tự "n" đằng sau nó : "ini", "innnnn", "inna", "ákdfinksaljdfaos".
{ : Dấu hiệu bắt đầu xác định số lượng xuất hiện của một chuỗi.
} : Dấu hiệu kết thúc xác định số lượng xuất hiện của một chuỗi.
VD : M(in){2}
Biểu thức này sẽ tương đồng với những chuỗi có chứa kí tự M và tiếp sau nó là 2 lần chuỗi "in" : "Minin", "Mininakfjlsa", "lkasfjlMinin", "ahMinink".
VD 2 : mi(2,)ms(3,)
Biểu thức trên sẽ tương đồng với những chuỗi chưa kí tự "m" tiếp sau nó là ít nhất 2 kí tự "i" rồi đến kí tự "m" và tiếp theo sau là ít nhất 3 kí tự "s" : "miimsss", "miiiiimssss", "ámiimssssra".
VD 3 : (Mi-){2,5}cs
Biểu thức này sẽ tương đồng với những chuỗi có ít nhất là 2 chuỗi "Mi-" nhưng nhiều nhất là 5 tiếp theo sau là chuỗi "cs" : "Mi-Mi-cs", "Mi-Mi-Mi-cs", "Mi-Mi-Mi-Mi-Mi-cs", "ákdMi-Mi-csIkA".
^ : Phủ định sự tồn tại của một kí tự trong lớp. Nếu không dùng trong lớp thì nó có nghĩa khẳng định một chuỗi phải bắt đầu bằng một kí tự nào đó.
- : Chỉ định một số kí tự là cùng một dãy
Tác giả : TG
Tra loi 0 comment(s) 2007-07-09 09:17:55
Y kien