Sử dụng hàm preg_match () trong PHP

Use Preg_match Function Php



Biểu thức chính quy là một mẫu cụ thể có thể được sử dụng để đối sánh, tìm kiếm và thay thế bất kỳ chuỗi cụ thể nào trong dữ liệu văn bản. Nó là một tính năng mạnh mẽ của bất kỳ ngôn ngữ lập trình nào. Nó chủ yếu được sử dụng để thực hiện các loại xác thực biểu mẫu khác nhau, chẳng hạn như xác thực email, kiểm tra định dạng điện thoại, xác thực trường tên người dùng và mật khẩu của biểu mẫu đăng nhập, v.v. Bất kỳ nội dung cụ thể nào của văn bản đều có thể được tìm kiếm và thay thế bằng biểu thức chính quy mẫu. Nó còn được gọi là regex hoặc RegExp. Các loại ký hiệu khác nhau được sử dụng để xác định mẫu regex.

Nhiều hàm dựng sẵn tồn tại trong PHP cho biểu thức chính quy. Hàm preg_match () là một trong số đó. Hàm này được sử dụng để đối sánh một mẫu cụ thể trong dữ liệu chuỗi. Cách sử dụng hàm preg_match () trong PHP để thực hiện các tác vụ khác nhau được giải thích trong hướng dẫn này.







Cú pháp:

Int hoặcsai preg_match (dây$ mẫu,dây$ chủ đề [, mảng &$ trận đấu = vô giá trị [,NS$ cờ = 0 [,NS$ bù đắp = 0]]])

Hàm này có thể có năm đối số. Đối số đầu tiên, $ mẫu , là bắt buộc, xác định mẫu để khớp. Đối số thứ hai, $ chủ đề , là bắt buộc và chứa dữ liệu chuỗi mà mẫu sẽ được áp dụng. Đối số thứ ba, $ trận đấu , là tùy chọn và nó trả về một mảng dựa trên kết quả phù hợp. Đối số thứ tư, $ cờ , là tùy chọn, chứa các loại giá trị cờ khác nhau dựa trên kết quả phù hợp. Đối số thứ năm, $ bù đắp , là tùy chọn và có thể được sử dụng để xác định vị trí bắt đầu của tìm kiếm.



Ví dụ 1: Khớp mẫu theo cách phân biệt chữ hoa chữ thường và không phân biệt chữ hoa chữ thường

Ví dụ sau cho thấy việc sử dụng hàm preg_match () để so khớp chuỗi theo cách phân biệt chữ hoa chữ thường và không phân biệt chữ hoa chữ thường. Tạo một tệp PHP với tập lệnh sau.



Ở đây, ba mẫu được sử dụng để áp dụng trong ba hàm preg_match (). Mẫu đầu tiên, '/Như/', được sử dụng để so khớp chuỗi theo cách phân biệt chữ hoa chữ thường. Mẫu thứ hai, '/như/' , được sử dụng để so khớp chuỗi theo cách phân biệt chữ hoa chữ thường. Mô hình thứ ba, ‘Thích / i’ , được sử dụng để so khớp chuỗi theo cách không phân biệt chữ hoa chữ thường. search_pattern () hàm được định nghĩa trong script để sử dụng hàm preg_match () để so khớp và nó in ra thông báo dựa trên giá trị trả về của hàm này.







// Xác định văn bản

$ text = 'Tôi thích PHP. Tôi cũng thích JavaScript. ';

// Xác định ba loại mẫu

$ pattern1 = '/Như/';

$ pattern2 = '/như/';

$ pattern3 = '/ Like / i';

// Xác định hàm để tìm kiếm mẫu trong văn bản

hàm sốsearch_pattern($ mẫu, $ string)

{

nếu như( preg_match ($ mẫu, $ string))

quăng đi 'Tìm kêt quả: Đối sánh được tìm thấy cho mẫu -$ mẫu
'
;

khác

quăng đi 'Tìm kêt quả: Không tìm thấy kết quả phù hợp cho mẫu -$ mẫu
'
;

}

// In văn bản gốc

quăng đi 'Văn bản gốc là: $ text
'
;

// Gọi hàm ba lần cho ba mẫu

search_pattern($ pattern1, $ text);

search_pattern($ pattern2, $ text);

search_pattern($ pattern3, $ text);

?>

Đầu ra :

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh từ máy chủ. Dòng đầu tiên hiển thị văn bản nơi các mẫu được tìm kiếm. Dòng thứ hai hiển thị đầu ra của mẫu đầu tiên. Dòng thứ ba hiển thị đầu ra của mẫu thứ hai. Dòng thứ tư hiển thị đầu ra của mẫu thứ ba.



Ví dụ 2: Xác thực URL

Ví dụ sau đây cho thấy cách xác thực địa chỉ URL bằng cách sử dụng hàm preg_match (). Tạo một tệp PHP với tập lệnh sau.

Giá trị URL được chỉ định trong biến $ url để thử nghiệm. Chuỗi ‘@ ^ (?: Https: //)? ([^ /] +) @I’ được sử dụng làm mẫu trong hàm preg_match () để kiểm tra xem địa chỉ URL có hợp lệ hay không. Nếu nó hợp lệ thì tên máy và tên miền sẽ được in ra, ngược lại, thông báo lỗi sẽ được in ra.



// Xác định URL

$ url = 'https://www.linuxhint.com';

// Xác định mẫu để xác thực URL

$ mẫu ='@ ^ (?: https: //)? ([^ /] +) @i';

// Kiểm tra URL có hợp lệ hay không

nếu như( preg_match ($ mẫu, $ url, $ trận đấu1))

{

// In thông báo thành công

quăng đi 'URL hợp lệ.
'
;

// In mảng có chứa các giá trị khớp

quăng đi 'Các giá trị của mảng là:';

print_r ($ trận đấu1);

// Lấy và in giá trị máy chủ

$ host = $ trận đấu1[1];

quăng đi '
Tên máy chủ là:$ host'
;

// Tìm kiếm tên miền từ giá trị máy chủ lưu trữ

preg_match ('/[^.-lex.europa.eu+.[^.íritu+$/', $ host, $ trận đấu2);

quăng đi '
Tên miền là:{$ trận đấu2 [0]}'
;

}

khác

{

// In thông báo lỗi

quăng đi 'URL không hợp lệ.';

}

?>

Đầu ra :

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh từ máy chủ. URL được cung cấp trong tập lệnh là hợp lệ. Vì vậy, đầu ra hiển thị các giá trị của $ phù hợp, tên máy chủ của URL và tên miền của URL.

Ví dụ 3: Mẫu tìm kiếm với cờ và giá trị bù đắp

Ví dụ sau đây cho thấy cách sử dụng cờ và giá trị bù đắp trong hàm preg_match (). Tạo một tệp PHP với tập lệnh sau.

Ba mẫu được sử dụng trong tập lệnh cho ba loại đối sánh. Trong hàm preg_match () đầu tiên, ‘/ (bangla) (desh) /’ được sử dụng làm mẫu và giá trị cờ, PREG_OFFSET_CAPTURE được sử dụng. Các giá trị của $ trận đấu biến sẽ in dựa trên kết quả đầu ra của hàm preg_match () đầu tiên. Trong hàm preg_match () thứ hai, ‘/ (bangla) (happy) * (desh) / i’, được sử dụng làm mẫu và giá trị cờ, PREG_UNMATCHED_AS_NULL được sử dụng. Nếu bất kỳ phần nào của mẫu không khớp thì giá trị NULL sẽ được lưu trong mảng. Các giá trị của $ trận đấu biến sẽ in dựa trên kết quả đầu ra của hàm preg_match () thứ hai. Trong hàm preg_match () thứ ba, ‘/ joy /’ được sử dụng làm mẫu, giá trị cờ, PREG_OFFSET_CAPTURE được sử dụng và 3 được sử dụng làm giá trị bù đắp. Các giá trị của $ trận đấu biến sẽ in dựa trên kết quả đầu ra của hàm preg_match () thứ ba.



// Xác định giá trị văn bản

$ text = 'Bangladesh';

// Xác định ba loại mẫu

$ pattern1 = '/ (người Bangladesh';

$ pattern2 = '/ (bangla) (vui mừng) * (desh) / i';

$ pattern3 = '/vui vẻ/';


// Sử dụng cờ PREG_OFFSET_CAPTURE

preg_match ($ pattern1, $ text, $ trận đấu,PREG_OFFSET_CAPTURE);

quăng đi '
';  

print_r ($matches);

echo '

'
;

// Sử dụng cờ PREG_UNMATCHED_AS_NULL

preg_match ($ pattern2, $ text, $ trận đấu,PREG_UNMATCHED_AS_NULL);

quăng đi '
';  

print_r ($matches);

echo '

'
;

// Sử dụng cờ PREG_OFFSET_CAPTURE và giá trị bù đắp

preg_match ($ pattern3, $ text, $ trận đấu,PREG_OFFSET_CAPTURE, 3);

quăng đi '
';  

print_r ($matches);

echo '
'
;

?>

Đầu ra :

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh từ máy chủ.

Phần kết luận

Việc sử dụng hàm preg_match () đã được giải thích trong hướng dẫn này bằng nhiều ví dụ. Việc sử dụng các đối số khác nhau của hàm này cũng đã được hiển thị ở đây. Người đọc sẽ có thể sử dụng chức năng này đúng cách trong tập lệnh của họ sau khi đọc hướng dẫn này.