Kết hợp regex PHP
PHP hỗ trợ các biểu thức chính quy thông qua việc sử dụng thư viện PCRE (Biểu thức chính quy tương thích Perl) được kích hoạt trong hầu hết các cài đặt PHP. Khi gọi bất kỳ phương thức nào bên dưới, PHP yêu cầu mỗi mẫu bắt đầu và kết thúc bằng cùng một dấu phân cách để phân biệt nó với một chuỗi bình thường, với dấu phân cách phổ biến nhất là ký tự gạch chéo lên phía trước Show Ví dụ: bạn sẽ viết biểu thức chính quy Trong PHP, bạn có thể sử dụng hàm Phương pháp
Thí dụ
Không giống như hàm Phương pháp
Thí dụ
Đôi khi, thật tiện lợi khi tìm và thay thế một chuỗi bằng cách sử dụng các biểu thức thông thường, chẳng hạn như để thay thế tất cả các trường hợp của một miền email cũ bằng một miền mới hoặc để hoán đổi thứ tự của một số văn bản. Bạn có thể làm điều này với chức năng Biểu thức chính quy thường được gọi là biểu thức chính quy (regex) là một chuỗi ký tự mô tả một mẫu tìm kiếm đặc biệt ở dạng chuỗi văn bản. Về cơ bản, chúng được sử dụng trong các thuật toán thế giới lập trình để khớp một số mẫu được xác định lỏng lẻo để đạt được một số nhiệm vụ có liên quan. Đôi khi biểu thức chính quy được hiểu là ngôn ngữ lập trình nhỏ với ký hiệu mẫu cho phép người dùng phân tích chuỗi văn bản. Trình tự chính xác của các ký tự là không thể đoán trước, do đó, biểu thức chính quy giúp tìm nạp các chuỗi cần thiết dựa trên định nghĩa mẫu Biểu thức chính quy là một cách nhỏ gọn để mô tả một mẫu chuỗi khớp với một lượng văn bản cụ thể. Như bạn đã biết, PHP là ngôn ngữ mã nguồn mở thường được sử dụng để tạo trang web, nó cung cấp các hàm biểu thức chính quy như một công cụ quan trọng. Giống như PHP, nhiều ngôn ngữ lập trình khác có cách triển khai biểu thức chính quy của riêng chúng. Điều này cũng tương tự với các ứng dụng khác, có hỗ trợ biểu thức chính quy riêng có nhiều cú pháp khác nhau. Nhiều ngôn ngữ và công cụ hiện đại có sẵn áp dụng biểu thức chính quy trên các tệp và chuỗi rất lớn. Chúng ta hãy xem xét một số ưu điểm và cách sử dụng biểu thức chính quy trong các ứng dụng của chúng ta Ưu điểm và cách sử dụng biểu thức chính quy
Chúng tôi không thể đề cập đến mọi thứ trong chủ đề này, nhưng chúng ta hãy xem xét một số khái niệm biểu thức chính quy chính. Bảng sau đây hiển thị một số biểu thức chính quy và chuỗi tương ứng khớp với mẫu biểu thức chính quy Cụm từ thông dụngMatchesgeeksChuỗi “geeks”^geeksChuỗi bắt đầu bằng “geeks”geeks$Chuỗi có “geeks” ở cuối. ^geeks$Chuỗi trong đó “geeks” đứng một mình trên một chuỗi. [abc]a, b, or c[a-z]Bất kỳ chữ thường nào[^A-Z]Bất kỳ chữ nào KHÔNG phải là chữ in hoa(gif. png)Hoặc “gif” hoặc “png”[a-z]+Một hoặc nhiều chữ cái viết thường^[a-zA-Z0-9]{1, }$Bất kỳ từ nào có ít nhất một số hoặc một chữ cái([ax])( . [0-9]{5})Khớp ba chữ cái hoặc năm sốGhi chú. 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 biểu thức chính quy cơ bản. Thậm chí nhiều toán tử số học như +, ^, – đượ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 nhỏ Toán tử trong biểu thức chính quy. Chúng ta hãy xem xét một số toán tử trong biểu thức chính quy PHP OperatorDescription^Nó biểu thị sự bắt đầu của chuỗi. $Nó biểu thị phần cuối của chuỗi. Nó biểu thị hầu hết mọi ký tự đơn lẻ. () Nó biểu thị một nhóm các biểu thức. []Nó tìm thấy một loạt các ký tự ví dụ [xyz] có nghĩa là x, y hoặc z. [^]Nó tìm các mục không nằm trong phạm vi, ví dụ [^abc] có nghĩa là KHÔNG a, b hoặc c. – (dấu gạch ngang) Nó tìm phạm vi ký tự trong phạm vi mục đã cho, ví dụ [a-z] có nghĩa là từ a đến z. (pipe)Đó là logic OR ví dụ x. y nghĩa là x HOẶC y. ?Nó biểu thị số không hoặc một trong các ký tự hoặc phạm vi mục trước đó. * Nó biểu thị không hoặc nhiều ký tự hoặc phạm vi mục trước đó. +Nó biểu thị một hoặc nhiều ký tự hoặc phạm vi mục trước đó. {n}Nó biểu thị chính xác n lần phạm vi mục hoặc ký tự trước đó, ví dụ n{2}. {n, }Nó biểu thị ít nhất n lần phạm vi ký tự hoặc mục trước đó, ví dụ n{2, }. {n, m}Nó biểu thị ít nhất n nhưng không quá m lần, ví dụ n{2, 4} có nghĩa là 2 đến 4 của n. \Nó biểu thị ký tự thoátCác lớp ký tự đặc biệt trong biểu thức chính quy. Chúng ta hãy xem xét một số ký tự đặc biệt được sử dụng trong biểu thức chính quy Ký tự đặc biệtÝ nghĩa\nNó biểu thị một dòng mới. \rNó biểu thị một sự trở lại vận chuyển. \tNó biểu thị một tab. \vNó biểu thị một tab dọc. \fNó biểu thị một nguồn cấp dữ liệu biểu mẫu. \xxxNó biểu thị ký tự bát phân xxx. \xhhNó biểu thị ký tự hex hhBộ ký tự tốc ký. Chúng ta hãy xem xét một số bộ ký tự tốc ký có sẵn ShorthandMeaning\sKhớp các ký tự khoảng trắng như dấu cách, dòng mới hoặc tab. \dKhớp với bất kỳ chữ số nào từ 0 đến 9. \wKhớp các ký tự từ bao gồm tất cả chữ thường và chữ hoa, chữ số và dấu gạch dướiCác chức năng được xác định trước hoặc thư viện Regex. Chúng ta hãy xem bảng tóm tắt nhanh về các hàm được xác định trước cho các biểu thức chính quy trong PHP. PHP cung cấp cho người lập trình nhiều hàm hữu ích để làm việc với biểu thức chính quy Các hàm dựng sẵn được liệt kê bên dưới phân biệt chữ hoa chữ thường FunctionDefinitionpreg_match() Hàm này tìm kiếm một mẫu cụ thể đối với một số chuỗi. Nó trả về true nếu mẫu tồn tại và sai nếu không. preg_match_all() Hàm này tìm kiếm tất cả các lần xuất hiện của mẫu chuỗi so với chuỗi. Chức năng này rất hữu ích cho việc tìm kiếm và thay thế. ereg_replace() Hàm này tìm kiếm mẫu chuỗi cụ thể và thay thế chuỗi gốc bằng chuỗi thay thế, nếu tìm thấy. eregi_replace() Hàm hoạt động giống như ereg_replace() miễn là tìm kiếm mẫu không phân biệt chữ hoa chữ thường. preg_replace() Hàm này hoạt động giống như hàm ereg_replace() miễn là các biểu thức chính quy có thể được sử dụng trong mẫu và chuỗi thay thế. preg_split() Hàm này hoạt động giống như hàm split() của PHP. Nó phân tách chuỗi bằng các biểu thức chính quy làm tham số của nó. preg_grep()Hàm này tìm kiếm tất cả các phần tử khớp với mẫu biểu thức chính quy và trả về mảng đầu ra. preg_quote() Hàm này lấy chuỗi và dấu ngoặc kép ở phía trước mỗi ký tự khớp với biểu thức chính quy. ereg() Hàm này tìm kiếm một chuỗi được chỉ định bởi một mẫu và trả về true nếu tìm thấy, nếu không thì trả về false. eregi() Hàm này hoạt động giống như hàm ereg() miễn là tìm kiếm không phân biệt chữ hoa chữ thườngGhi chú
ví dụ 1
John Developer0 John Developer1 = John Developer3 ;
John Developer5 John Developer6 John Developer7 John Developer8 $regex Completed graduation in 20020 John Developer1 Completed graduation in 20022 Completed graduation in 20023_______7_______4_______7_______5 Completed graduation in 20026 Completed graduation in 20027 Completed graduation in 20028 Completed graduation in 20029 134 645 478 6700 134 645 478 6701 134 645 478 6702 134 645 478 6703 Completed graduation in 20023_______7_______4 Completed graduation in 20025 134 645 478 6707 Completed graduation in 20027 Completed graduation in 20028 0 |