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 <?php 0134 645 478 6700 134 645 478 6701
đầu ra Name string matching with regular expression ví dụ 2
John Developer0
Completed graduation in 20020 // Declare a regular expression 1Completed graduation in 20020 $regex 2134 645 478 6700
Completed graduation in 20024 $regex 2$regex 6$regex 7_______7_______8$regex 2= 0= 1;
đầu ra John Developer ví dụ 3
John Developer0
Completed graduation in 20020 '/^[a-zA-Z ]*$/' 1134 645 478 6700 Completed graduation in 20023 John Developer03 Completed graduation in 20024 '/^[a-zA-Z ]*$/' 1;
đầu ra Completed graduation in 2002 Ví dụ 4
John Developer0 John Developer12 = John Developer14 ;
John Developer19 ;
John Developer21 John Developer22 John Developer23
John Developer25 $regex Completed graduation in 20020 John Developer12 134 645 478 6700
Completed graduation in 20024 John Developer31 ; Completed graduation in 20024 John Developer34 ; Completed graduation in 20024 John Developer37 ; Completed graduation in 20024 John Developer40 ;
đầu ra 134 645 478 670 Siêu ký tự. Có hai loại ký tự được sử dụng trong biểu thức chính quy, đó là. Ký tự thông thường và Siêu ký tự. Ký tự thông thường là những ký tự có nghĩa 'theo nghĩa đen' và Siêu ký tự là những ký tự có nghĩa 'đặc biệt' trong biểu thức chính quy Siêu ký tựMô tảVí dụ. Nó khớp với bất kỳ ký tự đơn nào ngoài một dòng mới. /. / so khớp với chuỗi có một ký tự. ^Nó khớp với phần đầu của chuỗi. /^geeks/ khớp với bất kỳ chuỗi nào bắt đầu bằng geeks. $Nó khớp với mẫu chuỗi ở cuối chuỗi. /com$/ khớp với chuỗi kết thúc bằng com chẳng hạn google. com vv. * Nó khớp với 0 hoặc nhiều ký tự. /com*/ phù hợp với đường đi làm, máy tính, thỏa hiệp, v.v. +Nó khớp với ký tự đứng trước xuất hiện ít nhất một lần. Ví dụ: /z+oom/ phù hợp với thu phóng. \Nó được sử dụng để thoát khỏi các siêu ký tự trong regex. /Google\. com/ sẽ coi dấu chấm là một giá trị theo nghĩa đen, không phải ký tự đại diện. a-zNó khớp với chữ thường. chuyên viên máy tính A-ZIt khớp với chữ in hoa. GEEKS0-9Nó khớp với bất kỳ số nào trong khoảng từ 0 đến 9. /0-5/ khớp với 0, 1, 2, 3, 4, 5[…]Nó khớp với lớp ký tự. /[pqr]/ khớp với pqrNhững ví dụ khác Cụm từ thông dụng Ý nghĩa^[. -a-z0-9A-Z]Nó khớp với chuỗi có dấu chấm, dấu gạch ngang và bất kỳ chữ cái viết thường nào, số từ 0 đến 9 và chữ cái viết hoa. +@[a-z0-9A-Z]Nó khớp với chuỗi có ký hiệu @ ở đầu, theo sau là bất kỳ chữ cái viết thường nào, số từ 0 đến 9 và chữ cái viết hoa. +\. [a-z]{2, 6}$/Nó thoát khỏi dấu chấm và sau đó khớp chuỗi với bất kỳ chữ cái viết thường nào có độ dài chuỗi từ 2 đến 6 ở cuốiGhi chú
Biểu thức chính quy POSIX. Một số biểu thức chính quy trong PHP giống như biểu thức số học được gọi là biểu thức chính quy POSIX. Đôi khi, biểu thức phức tạp được tạo bằng cách kết hợp các phần tử hoặc toán tử khác nhau trong biểu thức chính quy. Regex rất cơ bản là cái khớp với một ký tự Hãy xem xét một số biểu thức chính quy POSIX RegexMeaning[0-9]Nó khớp với chữ số từ 0 đến 9. [a-z]Nó khớp với bất kỳ chữ cái viết thường nào từ a đến z. [A-Z]Nó khớp với bất kỳ chữ cái viết hoa nào từ A đến Z. [a-Z]Nó khớp với mọi chữ cái viết thường từ a đến chữ cái viết hoa Z. [. thấp hơn. ] Nó khớp với bất kỳ chữ cái viết thường nào. [. phía trên. ] Nó khớp với bất kỳ chữ cái viết hoa nào. [. chữ cái. ] Nó khớp với tất cả các ký tự chữ cái hoặc chữ cái từ a-z và A-Z. [[. chữ cái. ]]Nó khớp với bất kỳ chuỗi nào chứa các ký tự chữ cái hoặc chữ cái. [. hàng năm. ] Nó khớp với tất cả các ký tự chữ và số i. e tất cả các chữ số (0-9) và chữ cái (a-z A-Z). [[. hàng năm. ]]Nó khớp với bất kỳ chuỗi nào chứa ký tự chữ và số và chữ số. [. chữ số. ] Nó khớp với tất cả các chữ số từ 0 đến 9. [[. chữ số. ]]Nó khớp với bất kỳ chuỗi nào chứa các chữ số từ 0 đến 9. [. x chữ số. ] Nó khớp với tất cả các chữ số thập lục phân. [. dấu câu. ] Nó khớp với tất cả các ký hiệu dấu chấm câu. [. trống. ] Nó khớp với các ký tự trống như dấu cách và tab. [. không gian. ] Nó khớp với tất cả các ký tự khoảng trắng như ngắt dòng. [[. không gian. ]]Nó khớp với bất kỳ chuỗi nào chứa khoảng trắng. [. cntrl. ] Nó khớp với tất cả các ký tự điều khiển. [. đồ thị. ] Nó khớp với tất cả các ký tự hiển thị hoặc in ngoài khoảng trắng và ký tự điều khiển. [. in. ] Nó khớp với tất cả các ký tự in và khoảng trắng ngoài các ký tự điều khiển. [. từ. ] Nó khớp với tất cả các ký tự từ như chữ số, chữ cái và dấu gạch dướiĐịnh lượng trong biểu thức chính quy. Lượng từ là các ký tự đặc biệt cho biết số lượng, tần suất hoặc số lần xuất hiện hoặc xuất hiện của ký tự hoặc nhóm ký tự trong ngoặc đơn. Chúng còn được gọi là biểu hiện tham lam và lười biếng. Chúng ta hãy xem xét một số khái niệm và ví dụ về lượng từ QuantifierMeaninga+Nó khớp với chuỗi chứa ít nhất một a. a*Nó khớp với chuỗi chứa 0 hoặc nhiều hơn a. a? Nó khớp với bất kỳ chuỗi nào chứa 0 hoặc 1 a. a{x}Nó khớp chữ cái 'a' chính xác x lần. a{2, 3}Nó khớp với bất kỳ chuỗi nào có sự xuất hiện của hai hoặc ba chữ a. a{2, }Nó khớp với bất kỳ chuỗi nào chứa ít nhất hai chữ a. a{2}Nó khớp với bất kỳ chuỗi nào chứa chính xác hai chữ số a. a{, y}Nó khớp với bất kỳ chuỗi nào chứa số lần xuất hiện không quá y của a. a$Nó khớp với bất kỳ chuỗi nào có 'a' ở cuối chuỗi. ^aNó khớp với bất kỳ chuỗi nào có 'a' ở đầu chuỗi. [^a-zA-Z]Nó khớp với bất kỳ mẫu chuỗi nào không có các ký tự từ a đến z và A đến Z. a. aNó khớp với bất kỳ mẫu chuỗi nào chứa a, sau đó là bất kỳ ký tự nào và sau đó là ký tự a khác. ^. {3}$Nó khớp với bất kỳ chuỗi nào có chính xác ba ký tựGhi chú
Các công cụ biểu thức chính quy thường được biết đến
Phần kết luận. Biểu thức chính quy là một mẫu mô tả một số văn bản chuỗi trong một mẫu cụ thể hoặc nó được định nghĩa là một thuật toán so khớp mẫu được biểu thị trong một dòng. Biểu thức chính quy rất hữu ích trong thế giới lập trình để kiểm tra xác thực và nhận dạng các mẫu cụ thể. PHP cung cấp nhiều hàm dựng sẵn hỗ trợ các biểu thức chính quy. Siêu ký tự giúp tạo các mẫu phức tạp Làm cách nào để kiểm tra đối sánh regex trong PHP?Trong PHP, bạn có thể sử dụng hàm preg_match() để kiểm tra xem một biểu thức chính quy có khớp với một chuỗi cụ thể hay không. Lưu ý rằng hàm này dừng sau lần khớp đầu tiên, vì vậy, hàm này phù hợp nhất để kiểm tra biểu thức chính quy hơn là trích xuất dữ liệu.
Làm cách nào để so sánh regex trong PHP?Sử dụng hàm preg_match() Hàm preg_match() sẽ cho bạn biết liệu một chuỗi có chứa các kết quả khớp của một mẫu hay không. . Sử dụng preg_match_all() Hàm preg_match_all() sẽ cho bạn biết có bao nhiêu kết quả tìm thấy cho một mẫu trong một chuỗi. . Sử dụng preg_replace(). nhóm Làm cách nào để lấy chuỗi khớp trong PHP?preg_match() trong PHP – hàm này được sử dụng để thực hiện khớp mẫu trong PHP trên một chuỗi. Nó trả về true nếu tìm thấy kết quả khớp và sai nếu không tìm thấy kết quả khớp. preg_replace() trong PHP – hàm này được sử dụng để thực hiện khớp mẫu trên một chuỗi và sau đó thay thế khớp bằng văn bản đã chỉ định.
Làm cách nào để thêm Preg_match trong PHP? |