Toán tử so sánh là một khía cạnh thường bị bỏ qua của PHP, điều này có thể dẫn đến nhiều kết quả không mong muốn. Một trong những vấn đề như vậy bắt nguồn từ so sánh nghiêm ngặt [so sánh các phép toán luận dưới dạng số nguyên]
9, và bạn sẽ thấy đầu ra chính xác của 0. Nếu sử dụng dấu ngoặc kép, điều đó sẽ cố gắng đánh giá tên biến 1 và hiển thị lỗi nếu không tìm thấy biến nào2 cho dòng mới, 3 cho tab, v.v.4Biểu thức chính quy thường được gọi là regex. Đây không gì khác hơn là một mẫu hoặc một chuỗi ký tự, mô tả một mẫu tìm kiếm đặc biệt dưới dạng chuỗi văn bản
Cụm từ thông dụng cho phép bạn tìm kiếm một chuỗi cụ thể bên trong một chuỗi khác. Thậm chí chúng ta có thể thay thế một chuỗi bằng một chuỗi khác và cũng có thể chia một chuỗi thành nhiều đoạn. Họ sử dụng các toán tử số học [+, -, ^] để tạo các biểu thức phức tạp
Theo mặc định, biểu thức chính quy phân biệt chữ hoa chữ thường
Lợi thế và cách sử dụng Biểu thức chính quy
Biểu thức chính quy được sử dụng hầu hết mọi nơi trong lập trình ứng dụng hiện tại. Dưới đây là một số ưu điểm và cách sử dụng các biểu thức chính quy được đưa ra
- Biểu thức chính quy giúp các lập trình viên xác thực chuỗi văn bản
- Nó cung cấp một công cụ mạnh mẽ để phân tích và tìm kiếm một mẫu cũng như sửa đổi chuỗi văn bản
- Bằng cách sử dụng các hàm biểu thức chính quy, các giải pháp đơn giản và dễ dàng được cung cấp để xác định các mẫu
- Regex rất hữu ích để tạo các thẻ nhận dạng hệ thống mẫu HTML
- Regex được sử dụng rộng rãi để phát hiện trình duyệt, xác thực biểu mẫu, lọc thư rác và kiểm tra độ mạnh của mật khẩu
- Nó hữu ích trong kiểm tra xác thực đầu vào của người dùng như địa chỉ email, số điện thoại di động và địa chỉ IP
- Nó giúp làm nổi bật các từ khóa đặc biệt trong tệp dựa trên kết quả tìm kiếm hoặc đầu vào
- Siêu ký tự cho phép chúng tôi tạo các mẫu phức tạp hơn
Bạn có thể tạo các mẫu tìm kiếm phức tạp bằng cách áp dụng một số quy tắc cơ bản của biểu thức chính quy. Nhiều toán tử số học [+, -, ^] cũng được sử dụng bởi các biểu thức chính quy để tạo các mẫu phức tạp
Toán tử trong biểu thức chính quy
OperatorDescription^Nó chỉ ra sự bắt đầu của chuỗi. $ Nó chỉ ra phần cuối của chuỗi. Nó tặng bất kỳ nhân vật nào. []Nó hiển thị một nhóm các biểu thức. []Nó tìm thấy một loạt các ký tự, e. g. , [abc] có nghĩa là a, b hoặc c. [^]Nó tìm các ký tự không nằm trong phạm vi, e. g. , [^xyz] có nghĩa là KHÔNG phải x, y hoặc z. -Nó tìm phạm vi giữa các phần tử, e. g. , [a-z] có nghĩa là từ a đến z. Nó là một toán tử OR logic, được sử dụng giữa các phần tử. e. g. , một. b, có nghĩa là a HOẶC b. ?Nó chỉ ra số 0 hoặc một trong các ký tự hoặc phạm vi phần tử trước đó. * Nó cho biết không hoặc nhiều ký tự hoặc phạm vi phần tử trước đó. +Nó chỉ ra 0 hoặc nhiều ký tự hoặc phạm vi phần tử trước đó. {n}Nó biểu thị ít nhất n lần phạm vi ký tự trước đó. Ví dụ - n{3}{n, }Nó biểu thị ít nhất n, nhưng không được nhiều hơn m lần, e. g. , n{2,5} có nghĩa là 2 đến 5 của n. {n, m}Nó cho biết ít nhất n, nhưng không được nhiều hơn m lần. Ví dụ - n{3,6} có nghĩa là 3 đến 6 của n. \Nó biểu thị ký tự thoátLớp ký tự đặc biệt trong Biểu thức chính quy
Mô tả ký tự đặc biệt\nNó cho biết một dòng mới. \rNó chỉ ra một sự trở lại vận chuyển. \tNó đại diện cho một tab. \vNó đại diện cho một tab dọc. \fNó đại diện cho một nguồn cấp dữ liệu biểu mẫu. \xxxNó đại diện cho một ký tự bát phân. \xxhNó biểu thị ký tự thập lục phân hhPHP cung cấp hai bộ hàm biểu thức chính quy
- Biểu thức chính quy POSIX
- Biểu thức chính quy kiểu PERL
Biểu thức chính quy POSIX
Cấu trúc của biểu thức chính quy POSIX tương tự như biểu thức số học điển hình. một số toán tử/phần tử được kết hợp với nhau để tạo thành các biểu thức phức tạp hơn
Biểu thức chính quy đơn giản nhất là biểu thức khớp với một ký tự bên trong chuỗi. Ví dụ: "g" bên trong chuỗi chuyển đổi hoặc chuỗi lồng. Hãy giới thiệu một số khái niệm đang được sử dụng trong biểu thức chính quy POSIX
dấu ngoặc
Dấu ngoặc [] có ý nghĩa đặc biệt khi chúng được sử dụng trong biểu thức chính quy. Chúng được sử dụng để tìm phạm vi ký tự bên trong nó
ExpressionDescription[0-9]Nó khớp với bất kỳ chữ số thập phân nào từ 0 đến 9. [a-z]Nó khớp với bất kỳ ký tự chữ thường nào từ a đến z. [A-Z]Nó khớp với bất kỳ ký tự chữ hoa nào từ A đến Z. [a-Z]Nó khớp với bất kỳ ký tự nào từ chữ thường a đến chữ hoa ZCác phạm vi trên thường được sử dụng. Bạn có thể sử dụng các giá trị phạm vi theo nhu cầu của mình, như [0-6] để khớp với bất kỳ chữ số thập phân nào từ 0 đến 6
định lượng
Một ký tự đặc biệt có thể đại diện cho vị trí của chuỗi ký tự trong ngoặc và ký tự đơn. Mỗi ký tự đặc biệt có một ý nghĩa cụ thể. Tất cả các ký hiệu +, *, ?, $ và {int range} đều tuân theo một chuỗi ký tự
Biểu thức Mô tả+Nó khớp với bất kỳ chuỗi nào chứa ít nhất một p. p*Nó khớp với bất kỳ chuỗi nào chứa một hoặc nhiều p. p? Nó khớp với bất kỳ chuỗi nào có 0 hoặc một p. p{N}Nó khớp với bất kỳ chuỗi nào có một chuỗi N p. p{2,3}Nó khớp với bất kỳ chuỗi nào có một chuỗi gồm hai hoặc ba chữ p. p{2, }Nó khớp với bất kỳ chuỗi nào chứa ít nhất hai chữ p. p$It khớp với bất kỳ chuỗi nào chứa p ở cuối của nó. ^pNó khớp với bất kỳ chuỗi nào có p ở đầu nóHàm PHP Regexp POSIX
PHP cung cấp bảy hàm để tìm kiếm chuỗi bằng cách sử dụng biểu thức chính quy kiểu POSIX -
Ghi chú. Lưu ý rằng các hàm trên không được dùng trong PHP 5. 3. 0 và bị xóa trong PHP 7. 0. 0
Biểu thức chính quy kiểu PERL
Biểu thức chính quy kiểu Perl tương tự như POSIX. Cú pháp POSIX có thể được sử dụng thay thế cho hàm biểu thức chính quy kiểu Perl. Các bộ định lượng được giới thiệu trong phần POSIX cũng có thể được sử dụng trong biểu thức chính quy kiểu PERL
Siêu ký tự
Một siêu ký tự là một ký tự chữ cái theo sau bởi dấu gạch chéo ngược mang ý nghĩa đặc biệt cho sự kết hợp
Ví dụ: ký tự '\d' có thể được sử dụng để tìm kiếm số tiền lớn. /[[\d]+]000/. Ở đây /d sẽ tìm kiếm chuỗi ký tự số
Dưới đây là danh sách các siêu ký tự có thể được sử dụng trong Biểu thức chính quy kiểu PERL -
Mô tả nhân vật. Khớp với một ký tự\sNó khớp với một ký tự khoảng trắng như dấu cách, dòng mới, tab. \Ký tự không phải khoảng trắng\dOt khớp với bất kỳ chữ số nào từ 0 đến 9. \DKhớp một ký tự không phải chữ số. \wKhớp với một ký tự từ, chẳng hạn như - a-z, A-Z, 0-9, _\WKhớp với một ký tự không phải từ. [aeiou]Nó khớp với bất kỳ ký tự đơn nào trong tập hợp đã cho. [^aeiou]Nó khớp với bất kỳ ký tự đơn nào ngoại trừ tập hợp đã cho. [foo. baz. bar] Khớp với bất kỳ lựa chọn thay thế nào được chỉ địnhsửa đổi
Có một số công cụ sửa đổi có sẵn, giúp công việc dễ dàng hơn nhiều với biểu thức chính quy. Ví dụ: phân biệt chữ hoa chữ thường hoặc tìm kiếm trong nhiều dòng, v.v.