Biểu thức chính quy không gì khác hơn là một chuỗi hoặc mẫu ký tự. Chúng 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 đoạn
PHP cung cấp các hàm dành riêng cho hai bộ hàm biểu thức chính quy, mỗi nhóm 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ố chúng dựa trên sự thoải mái của bạn
- 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 không giống với cấu trúc của biểu thức số học điển hình. Các phần tử khác nhau [toán tử] đượ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, haggle hoặc bag
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
dấu ngoặc
Dấu ngoặc vuông [[]] có ý nghĩa đặc biệt khi được sử dụng trong ngữ cảnh của biểu thức chính quy. Chúng được sử dụng để tìm một loạt các ký tự
Sr. NoExpression & Description1[0-9] Nó khớp với bất kỳ chữ số thập phân nào từ 0 đến 9. 2[a-z] Nó khớp với bất kỳ ký tự nào từ chữ thường a đến chữ thường z. 3[A-Z] Nó khớp với bất kỳ ký tự nào từ chữ hoa A đến chữ hoa Z. 4[a-Z] Nó khớp với bất kỳ ký tự nào từ chữ thường a đến chữ hoa ZPhạm vi được 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 trong khoảng từ 0 đến 3 hoặc phạm vi [b-v] để khớp với bất kỳ ký tự chữ thường nào trong khoảng từ b đến v
định lượng
Tần suất hoặc vị trí của các chuỗi ký 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 ký tự đặc biệt có một ý nghĩa cụ thể. +, *, ?, {int. phạm vi} và cờ $ đều theo sau một chuỗi ký tự
Sr. NoExpression & Description1p+ Nó khớp với bất kỳ chuỗi nào chứa ít nhất một p. 2p* Nó khớp với bất kỳ chuỗi nào chứa 0 hoặc nhiều hơn p. 3p? . Đây chỉ là một cách thay thế để sử dụng p*. 4p{N} Nó khớp với bất kỳ chuỗi nào chứa một chuỗi N p's5p{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's. 6p{2, } Nó khớp với bất kỳ chuỗi nào chứa một chuỗi ít nhất hai chữ p. 7p$ Nó khớp với bất kỳ chuỗi nào có p ở cuối chuỗi. 8^p Nó khớp với bất kỳ chuỗi nào có p ở đầu chuỗiví dụ
Các ví dụ sau sẽ xóa các khái niệm của bạn về các ký tự phù hợp
Phạm vi ký tự được xác định trước
Để thuận tiện cho việc lập trình của bạn, có sẵn một số phạm vi ký tự được xác định trước, còn được gọi là lớp ký tự. 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 một bộ số nguyên
Sr. STT Biểu hiện và Mô tả 1[[. chữ cái. ]] Nó khớp với bất kỳ chuỗi nào chứa các ký tự chữ cái từ 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[[. hàng năm. ]] Nó khớp với bất kỳ chuỗi nào chứa các ký tự chữ và số từ aA đến zZ và từ 0 đến 9. 4[[. khoảng trống. ]] Nó khớp với bất kỳ chuỗi nào chứa khoảng trắngHàm PHP Regex POSIX
PHP hiện cung cấp bảy chức năng để tìm kiếm chuỗi bằng cách sử dụng biểu thức chính quy kiểu POSIX
Sr. NoExpression & Description1ereg[] 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 tìm thấy mẫu và trả về false nếu không. 2ereg_replace[] Hàm ereg_replace[] 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. Tìm kiếm không phân biệt chữ hoa chữ thường. 4eregi_replace[] Hàm eregi_replace[] hoạt động chính xác như ereg_replace[], 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. 5split[] Hàm split[] sẽ chia một chuỗi thành nhiều phần tử khác nhau, ranh giới của mỗi 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ư hàm anh chị em của nó là 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 trong ngoặc có chứa hai ký tựBiểu thức chính quy kiểu PERL
Các 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ư thay thế 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 giải thích cho một số khái niệm được sử dụng trong biểu thức chính quy PERL. 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
Ký tự meta
Một ký tự meta chỉ đơn giản là một ký tự chữ cái đứng trước dấu gạch chéo ngược có tác dụng mang lại 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
Mô tả nhân vật. một ký tự đơn\sa ký tự khoảng trắng [dấu cách, tab, dòng mới]\Ký tự không phải khoảng trắng\da chữ số [0-9]\Da không phải chữ số\wa ký tự từ [a-z, A-Z, 0-9, _]\Wa nonsửa đổi
Một số công cụ sửa đổi có sẵn có thể giúp công việc của bạn với biểu thức chính quy dễ dàng hơn nhiều, như phân biệt chữ hoa chữ thường, tìm kiếm trong nhiều dòng, v.v.