Hàm ereg trong PHP là gì?

PHP có hai bộ hàm biểu thức chính quy. các chức năng ereg và preg. Các hàm preg hỗ trợ cú pháp regex đầy đủ tính năng hiện đại dựa trên thư viện PCRE và được khuyến nghị cho mã mới. Kể từ PHP 7. 3. 0 chúng dựa trên PCRE2

Các hàm ereg triển khai các biểu thức chính quy POSIX cung cấp một cú pháp giới hạn. Các hàm ereg không được dùng nữa, nhưng RegexBuddy vẫn hỗ trợ đầy đủ chúng để bạn có thể duy trì mã hiện có hoặc chuyển đổi các biểu thức chính quy của mình từ hương vị ereg của PHP sang hương vị preg

Xem mã hóa với Regex có thể dễ dàng như thế nào

Trước tiên, hãy sử dụng RegexBuddy để xác định biểu thức chính quy hoặc truy xuất biểu thức chính quy được lưu trong thư viện RegexBuddy. Dựa vào phân tích regex rõ ràng của RegexBuddy, được cập nhật liên tục khi bạn xây dựng mẫu, thay vì tự mình xử lý cú pháp regex khó hiểu. Trợ giúp chi tiết về cú pháp đó luôn chỉ bằng một cú nhấp chuột

Nếu bạn đã sao chép một biểu thức chính quy được viết cho một ngôn ngữ lập trình khác, chỉ cần dán nó vào RegexBuddy, chọn ngôn ngữ gốc, sau đó chuyển đổi biểu thức chính quy đó thành phiên bản cụ thể của PHP và tập hợp các hàm bạn đang sử dụng. Bạn cũng có thể chuyển đổi từ phiên bản PHP này sang phiên bản khác và từ cú pháp ereg cũ sang cú pháp preg hiện đại. Nếu bạn đang viết một thư viện mã cần hoạt động với nhiều phiên bản PHP, hãy so sánh biểu thức chính quy của bạn giữa các phiên bản PHP đó để đảm bảo rằng nó sẽ hoạt động chính xác như nhau với tất cả chúng. RegexBuddy biết tất cả các tính năng và tất cả các lỗi trong tất cả các phiên bản PCRE từ PHP 4 của năm 2003. 3. 3 cho đến PHP 8 mới nhất. 1. 12

Nếu bạn đã tạo một biểu thức chính quy mới, hãy kiểm tra và gỡ lỗi nó trong RegexBuddy trước khi sử dụng nó trong mã nguồn PHP của bạn. Kiểm tra từng biểu thức chính trong hộp cát an toàn của RegexBuddy mà không gặp rủi ro về dữ liệu quý giá. Nhanh chóng áp dụng biểu thức chính quy cho nhiều loại dữ liệu đầu vào và mẫu mà không cần phải tạo đầu vào đó thông qua tập lệnh của bạn

Cuối cùng, hãy để RegexBuddy tạo một đoạn mã nguồn mà bạn có thể sao chép và dán trực tiếp vào bất kỳ trình soạn thảo mã IDE hoặc PHP nào mà bạn sử dụng. Chỉ cần chọn những gì bạn muốn sử dụng biểu thức chính quy và đoạn mã đầy đủ chức năng đã sẵn sàng. Bạn có thể thay đổi tên của các biến và tham số để phù hợp với phong cách đặt tên của bạn hoặc tình hình hiện tại mà RegexBuddy tự động ghi nhớ

Đừng bận tâm cố nhớ phương thức nào cần gọi hoặc tham số nào cần truyền. Và đừng lo lắng về việc thoát đúng dấu gạch chéo ngược và dấu ngoặc kép. Chỉ cần cho RegexBuddy biết bạn muốn làm gì và bạn sẽ nhận được mã PHP thích hợp ngay lập tức. Bất cứ điều gì có thể được thực hiện. kiểm tra một chuỗi để khớp, trích xuất kết quả tìm kiếm, xác thực đầu vào, tìm kiếm và thay thế, tách chuỗi, v.v.

Biểu thức chính quy là một chuỗi các ký tự tạo thành một mẫu tìm kiếm. Khi bạn tìm kiếm dữ liệu trong một văn bản, bạn có thể sử dụng mẫu tìm kiếm này để mô tả những gì bạn đang tìm kiếm

Một biểu thức chính quy có thể là một ký tự đơn hoặc một mẫu phức tạp hơn

Biểu thức chính quy có thể được sử dụng để thực hiện tất cả các loại hoạt động tìm kiếm văn bản và thay thế văn bản


cú pháp

Trong PHP, các biểu thức chính quy là các chuỗi bao gồm các dấu phân cách, mẫu và các công cụ sửa đổi tùy chọn

Trong ví dụ trên, / là dấu phân cách, w3schools là mẫu đang được tìm kiếm và i là một công cụ sửa đổi làm cho tìm kiếm không phân biệt chữ hoa chữ thường

Dấu phân cách có thể là bất kỳ ký tự nào không phải là chữ cái, số, dấu gạch chéo ngược hoặc dấu cách. Dấu phân cách phổ biến nhất là dấu gạch chéo lên (/), nhưng khi mẫu của bạn chứa dấu gạch chéo lên, bạn nên chọn các dấu phân cách khác như # hoặc ~


Hàm biểu thức chính quy

PHP cung cấp nhiều hàm cho phép bạn sử dụng các biểu thức chính quy. Các hàm preg_match(), preg_match_all()preg_replace() là một số hàm được sử dụng phổ biến nhất

FunctionDescriptionpreg_match()Trả về 1 nếu mẫu được tìm thấy trong chuỗi và 0 nếu notpreg_match_all()Trả về số lần mẫu được tìm thấy trong chuỗi, cũng có thể là 0preg_replace()Trả về một chuỗi mới trong đó các mẫu phù hợp đã được thay thế bằng

Sử dụng 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

Thí dụ

Sử dụng biểu thức chính quy để thực hiện tìm kiếm "w3schools" trong một chuỗi không phân biệt chữ hoa chữ thường

$str = "Truy cập W3Schools";
$pattern = "/w3schools/i";
tiếng vang preg_match($pattern, $str);
?>

Tự mình thử »


Sử dụng preg_match_all()

Hàm preg_match_all() sẽ cho bạn biết có bao nhiêu kết quả phù hợp được tìm thấy cho một mẫu trong chuỗi

Thí dụ

Sử dụng biểu thức chính quy để đếm số lần xuất hiện của "ain" trong một chuỗi không phân biệt chữ hoa chữ thường

$str = "Mưa ở TÂY BAN NHA chủ yếu rơi trên đồng bằng. “;
$pattern = "/ain/i";
tiếng vang preg_match_all($pattern, $str);
?>

Tự mình thử »


Sử dụng preg_replace()

Hàm preg_replace() sẽ thay thế tất cả các kết quả khớp của mẫu trong một chuỗi bằng một chuỗi khác

Thí dụ

Sử dụng biểu thức chính quy không phân biệt chữ hoa chữ thường để thay thế Microsoft bằng W3Schools trong một chuỗi

$str = "Truy cập Microsoft. “;
$pattern = "/microsoft/i";
echo preg_replace($pattern, "W3Schools", $str); . "
?>

Tự mình thử »



Công cụ sửa đổi biểu thức chính quy

Công cụ sửa đổi có thể thay đổi cách thực hiện tìm kiếm

Công cụ sửa đổi Mô tảiThực hiện tìm kiếm không phân biệt chữ hoa chữ thườngmThực hiện tìm kiếm nhiều dòng (các mẫu tìm kiếm phần đầu hoặc phần cuối của chuỗi sẽ khớp với phần đầu hoặc phần cuối của mỗi dòng)uCho phép khớp chính xác các mẫu được mã hóa UTF-8

Các mẫu biểu thức chính quy

Dấu ngoặc vuông được sử dụng để tìm một dãy ký tự

Biểu thứcMô tả[abc]Tìm một ký tự trong các tùy chọn nằm giữa các dấu ngoặc[^abc]Tìm bất kỳ ký tự nào KHÔNG nằm trong các dấu ngoặc[0-9]Tìm một ký tự trong phạm vi 0 đến 9

Siêu ký tự

Siêu ký tự là ký tự có ý nghĩa đặc biệt

Siêu ký tựMô tả. Tìm một kết quả phù hợp cho bất kỳ một trong các mẫu được phân tách bằng. như trong. con mèo. chú chó. cá. Chỉ tìm một phiên bản của bất kỳ ký tự nào^Tìm kết quả khớp ở đầu chuỗi như trong. ^Hello$Tìm một kết quả khớp ở cuối chuỗi như trong. World$\dTìm một chữ số\Tìm một ký tự khoảng trắng\Tìm một từ khớp ở đầu một từ như thế này. \bWORD hoặc ở cuối từ như thế này. WORD\b\uxxxxTìm ký tự Unicode được chỉ định bởi số thập lục phân xxxx

định lượng

Định lượng xác định đại lượng

QuantifierDescriptionn+Khớp với bất kỳ chuỗi nào chứa ít nhất một nn*Khớp với bất kỳ chuỗi nào chứa 0 hoặc nhiều lần xuất hiện của nn?Khớp với bất kỳ chuỗi nào chứa 0 hoặc một lần xuất hiện của nn{x}Khớp với bất kỳ chuỗi nào chứa một chuỗi X n'sn

Ghi chú. Nếu biểu thức của bạn cần tìm kiếm một trong các ký tự đặc biệt, bạn có thể sử dụng dấu gạch chéo ngược ( \ ) để thoát khỏi chúng. Ví dụ: để tìm kiếm một hoặc nhiều dấu chấm hỏi, bạn có thể sử dụng biểu thức sau. $pattern = '/\?+/';


nhóm

Bạn có thể sử dụng dấu ngoặc đơn ( ) để áp dụng các bộ định lượng cho toàn bộ mẫu. Chúng cũng có thể được sử dụng để chọn các phần của mẫu được sử dụng làm đối sánh

Làm cách nào để sử dụng eregi trong PHP?

Hàm eregi() tìm kiếm trong 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. Eregi() có thể đặc biệt hữu ích khi kiểm tra tính hợp lệ của các chuỗi, chẳng hạn như mật khẩu.

Điều nào sau đây đúng về hàm eReg()?

Q 7 - Điều nào sau đây đúng về hàm ereg()? . The ereg() function searches a string specified by string for a string specified by pattern, returning true if the pattern is found, and false otherwise.

Regex trong PHP là gì?

Biểu thức chính quy là chuỗi ký tự tạo thành mẫu tìm kiếm . Khi bạn tìm kiếm dữ liệu trong một văn bản, bạn có thể sử dụng mẫu tìm kiếm này để mô tả những gì bạn đang tìm kiếm. Một biểu thức chính quy có thể là một ký tự đơn hoặc một mẫu phức tạp hơn.

Làm cách nào để khớp một chuỗi trong PHP?

Hàm strcmp() so sánh hai chuỗi . Ghi chú. Hàm strcmp() an toàn nhị phân và phân biệt chữ hoa chữ thường. Mẹo. Hàm này tương tự như hàm strncmp(), với điểm khác biệt là bạn có thể chỉ định số lượng ký tự từ mỗi chuỗi sẽ được sử dụng để so sánh với hàm strncmp().