Thứ Tư, 6 tháng 3, 2019

Khóa học PHP - PHP - Biểu thức chính quy

Biểu thức thông thường không có gì khác hơn là một chuỗi hoặc mẫu của các ký tự. Họ cung cấp nền tảng cho chức năng khớp mẫu.

Sử dụng biểu thức chính quy, bạn có thể tìm kiếm một chuỗi cụ thể bên trong một chuỗi khác, bạn có thể thay thế một chuỗi bằng một chuỗi khác và bạn có thể chia một chuỗi thành nhiều chuỗi.

Khóa đào tạo PHP cung cấp các hàm cụ thể cho hai bộ hàm biểu thức chính quy, mỗi bộ tương ứng với một loại biểu thức chính quy nhất định. Bạn có thể sử dụng bất kỳ trong số họ dựa trên sự thoải mái của bạn.

Học lập trình PHP chuyên nghiệp
Học lập trình PHP chuyên nghiệp

Biểu thức chính quy POSIX

Biểu thức thường xuyên của PERL

Biểu thức chính quy POSIX

Cấu trúc của biểu thức chính quy POSIX không giống với biểu thức số học điển hình: các phần tử (toán tử) khác nhau được kết hợp để 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ự đơn lẻ, chẳng hạn như g, bên trong các chuỗi như g, mặc cả hoặc túi Khóa đào tạo PHP.

Hãy đưa ra lời giải thích cho một vài khái niệm đang được sử dụng trong biểu thức chính quy POSIX. Sau đó chúng tôi sẽ giới thiệu cho bạn các hàm liên quan đến biểu thức chính quy.

Chân đế


Chân đế ([]) có ý nghĩa đặc biệt khi được sử dụng trong ngữ cảnh của các biểu thức thông thường. Chúng được sử dụng để tìm một loạt các nhân vật.

Không.Biểu hiện & mô tả
1[0-9]

Nó phù hợp với bất kỳ chữ số thập phân từ 0 đến 9.
2[az]

Nó phù hợp với bất kỳ ký tự từ chữ thường a đến chữ thường z.
3[AZ]
Nó phù hợp với bất kỳ ký tự nào từ chữ hoa A đến chữ hoa Z.
4[aZ]

Nó phù hợp với bất kỳ ký tự nào từ chữ thường a đến chữ hoa Z.
Các phạm vi hiển thị ở trên là chung; bạn cũng có thể sử dụng phạm vi [0-3] để khớp với bất kỳ chữ số thập phân nào từ 0 đến 3 hoặc phạm vi [bv] để khớp với bất kỳ ký tự chữ thường nào từ b đến v.

Bộ định lượng


Tần số hoặc vị trí của các chuỗi ký tự được đặt trong ngoặc và các ký tự đơn có thể được biểu thị bằng một ký tự đặc biệt. Mỗi nhân vật đặc biệt có một ý nghĩa cụ thể. Dấu +, *,?, {Int. phạm vi} và tất cả các cờ $ đều theo một chuỗi ký tự.

Không.Biểu hiện & mô tả
1p +

Nó phù hợp với bất kỳ chuỗi chứa ít nhất một p.
2p *
Nó phù hợp với bất kỳ chuỗi nào chứa 0 hoặc nhiều p.
3p?

Nó phù hợp với bất kỳ chuỗi nào chứa 0 hoặc 1 p.
4p { N }
Nó khớp với bất kỳ chuỗi nào chứa một chuỗi N p's
5p {2,3}

Nó khớp với bất kỳ chuỗi nào chứa một chuỗi gồm hai hoặc ba p.
6p {2,}

Nó phù hợp với bất kỳ chuỗi nào chứa một chuỗi ít nhất hai p.
7p $

Nó khớp với bất kỳ chuỗi nào với p ở cuối của nó.
số 8^ p
Nó phù hợp với bất kỳ chuỗi với p ở đầu của nó.
Các ví dụ sau đây sẽ xóa các khái niệm của bạn về các nhân vật phù hợp.

Không.Biểu hiện & mô tả
1[^ a-zA-Z]

Nó khớp với bất kỳ chuỗi nào không chứa bất kỳ ký tự nào từ a đến z và A đến Z.
2trang

Nó khớp với bất kỳ chuỗi nào chứa p, theo sau là bất kỳ ký tự nào, lần lượt theo sau là p khác.
3^. {2} $
Nó phù hợp với bất kỳ chuỗi chứa chính xác hai ký tự.
4<b> (. *) </ b>
Nó phù hợp với bất kỳ chuỗi nào được bao trong <b> và </ b>.
5p (hp) *
Nó phù hợp với bất kỳ chuỗi nào chứa ap theo sau bởi 0 hoặc nhiều phiên bản của chuỗi php.

Phạm vi nhân vật được xác định trước


Để thuận tiện cho việc lập trình của bạn, một số phạm vi ký tự được xác định trước, còn được gọi là các lớp ký tự, có sẵn. Các lớp ký tự xác định toàn bộ phạm vi ký tự, ví dụ: bảng chữ cái hoặc bộ số nguyên 

Không.Biểu hiện & mô tả
1[[: alpha:]]

Nó phù hợp với bất kỳ chuỗi chứa các ký tự chữ cái aA đến zZ.
2[[: chữ số:]]

Nó khớp với bất kỳ chuỗi nào chứa các chữ số từ 0 đến 9.
3[[: alnum:]]

Nó khớp với bất kỳ chuỗi nào chứa các ký tự chữ và số aA đến zZ và 0 đến 9.
4[[:không gian:]]
Nó phù hợp với bất kỳ chuỗi chứa một khoảng trắng.


Các hàm POSIX Regex của PHP

Khóa đào tạo PHP hiện cung cấp bảy hàm để tìm kiếm chuỗi bằng các biểu thức chính quy kiểu POSIX

Không.Mô tả chức năng
1ereg ()
Hàm ereg () tìm kiếm một chuỗi được chỉ định bởi chuỗi cho một chuỗi được chỉ định bởi mẫu, trả về true nếu mẫu được tìm thấy và ngược lại là sai.
2ereg numplace ()
Hàm ereg numplace () tìm kiếm chuỗi được chỉ định bởi mẫu và thay thế mẫu bằng thay thế nếu tìm thấy.
3eregi ()
Hàm eregi () tìm kiếm trong suốt một chuỗi được chỉ định bởi mẫu cho một chuỗi được chỉ định bởi chuỗi. Việc tìm kiếm không phân biệt chữ hoa chữ thường.
4eregi numplace ()
Hàm eregi numplace () hoạt động chính xác như ereg numplace (), ngoại trừ việc tìm kiếm mẫu trong chuỗi không phân biệt chữ hoa chữ thường.
5chia ()
Hàm split () sẽ chia một chuỗi thành các phần tử khác nhau, các ranh giới của từng phần tử dựa trên sự xuất hiện của mẫu trong chuỗi.
6spliti ()
Hàm spliti () hoạt động chính xác theo cách tương tự như anh chị em của nó split (), ngoại trừ việc nó không phân biệt chữ hoa chữ thường.
7sql_regcase ()
Hàm sql_regcase () có thể được coi là một hàm tiện ích, chuyển đổi từng ký tự trong chuỗi tham số đầu vào thành một biểu thức có dấu ngoặc chứa hai ký tự.

Biểu thức thường xuyên của PERL


Biểu thức chính quy kiểu Perl tương tự như các đối tác POSIX của chúng. Cú pháp POSIX có thể được sử dụng gần như hoán đổi cho nhau với các hàm biểu thức chính quy kiểu Perl. Trên thực tế, bạn có thể sử dụng bất kỳ bộ định lượng nào được giới thiệu trong phần POSIX trước đó.

Hãy đưa ra lời giải thích cho một vài khái niệm đang được sử dụng trong các biểu thức chính quy PERL. Sau đó, chúng tôi sẽ giới thiệu cho bạn các chức năng liên quan đến biểu thức chính quy.

Ký tự meta


Một ký tự meta chỉ đơn giản là một ký tự chữ cái đi trước dấu gạch chéo ngược có tác dụng tạo cho tổ hợp một ý nghĩa đặc biệt.

Chẳng hạn, bạn có thể tìm kiếm số tiền lớn bằng cách sử dụng ký tự meta '\ d': / ([\ d] +) 000 / , Tại đây \ d sẽ tìm kiếm bất kỳ chuỗi ký tự số nào.

Sau đây là danh sách các ký tự meta có thể được sử dụng trong Biểu thức chính quy kiểu PERL.

Character  Description
.              a single character
\s             a whitespace character (space, tab, newline)
\S             non-whitespace character
\d             a digit (0-9)
\D             a non-digit
\w             a word character (a-z, A-Z, 0-9, _)
\W             a non-word character
[aeiou]        matches a single character in the given set
[^aeiou]       matches a single character outside the given set
(foo|bar|baz)  matches any of the alternatives specified
Công cụ sửa đổi

Một số sửa đổi có sẵn có thể làm cho công việc của bạn với regexps dễ dàng hơn nhiều, như độ nhạy trường hợp, tìm kiếm trong nhiều dòng, v.v.

Modifier Description
i  Makes the match case insensitive
m  Specifies that if the string has newline or carriage
 return characters, the ^ and $ operators will now
 match against a newline boundary, instead of a
 string boundary
o  Evaluates the expression only once
s  Allows use of . to match a newline character
x  Allows you to use white space in the expression for clarity
g  Globally finds all matches
cg  Allows a search to continue even after a global match fails

Các hàm tương thích PERL PERL của PHP

Khóa đào tạo PHP cung cấp các hàm sau để tìm kiếm chuỗi bằng các biểu thức chính quy tương thích Perl

Không.Mô tả chức năng
1preg_match ()
Hàm preg_match () tìm kiếm chuỗi cho mẫu, trả về true nếu mẫu tồn tại và sai khác.
2preg_match_all ()
Hàm preg_match_all () khớp với tất cả các lần xuất hiện của mẫu trong chuỗi.
3preg numplace ()
Hàm preg numplace () hoạt động giống như ereg numplace (), ngoại trừ các biểu thức thông thường có thể được sử dụng trong mẫu và các tham số đầu vào thay thế.
4preg_split ()
Hàm preg_split () hoạt động chính xác như split (), ngoại trừ các biểu thức chính quy được chấp nhận làm tham số đầu vào cho mẫu.
5preg_grep ()
Hàm preg_grep () tìm kiếm tất cả các phần tử của input_array, trả về tất cả các phần tử khớp với mẫu regrec.
6preg_ quote ()
Trích dẫn ký tự biểu thức chính quy

Không có nhận xét nào:

Đăng nhận xét

lập trình PHP cho các nhà phát triển PERL

Chương này sẽ liệt kê những điểm tương đồng và khác biệt chính giữa PHP và PERL. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP rất nhanh...