Tìm từ trong chuỗi PHP preg_match

Tìm từ không theo sau bởi các từ khác

 
if [preg_match[$regex, $valid]] {
    echo "Found match:  '" . $valid . "'\n";
  } else {
    echo "No match:  '" . $valid . "'\n";
  }

  if [preg_match[$regex, $invalid]] {
    echo "Found match:  '" . $invalid . "'\n";
  } else {
    echo "No match:  '" . $invalid . "'\n";
  }

?>
  
  

Ví dụ liên quan trong cùng thể loại

Hàm PHP `strpos` trả về vị trí đầu tiên trong chuỗi `$haystack` mà tại đó chuỗi `$needle` xuất hiện. Đây là cách nó có thể được sử dụng

if[strpos[$str, "Hello"] !== false]
echo "true";

Lưu ý việc sử dụng toán tử đẳng thức `. ==`. `strpos` trả về vị trí số xuất hiện của chuỗi `$needle` *nếu nó xảy ra*. và `false` nếu không. Vì các vị trí chuỗi bắt đầu từ 0 và 0 đánh giá là `false` trong PHP, nên sự bình đẳng nghiêm ngặt được đảm bảo bằng cách sử dụng `. toán tử ==`.  

Để so sánh không phân biệt chữ hoa chữ thường, có thể sử dụng hàm liên quan `stripos`

Sử dụng biểu thức chính quy

PHP cung cấp các chức năng để cho phép khớp mẫu bằng cách sử dụng các biểu thức chính quy. Sử dụng hàm `preg_match`

if[preg_match["/Hello/", $str]
echo "true";

`preg_match` thực hiện tìm kiếm biểu thức chính quy trong `$string` đã cho và trả về 1 nếu chuỗi khớp, 0 nếu không và `false` nếu xảy ra lỗi. Tuy nhiên, cần lưu ý rằng `preg_match` chậm hơn `strpos` và sẽ làm giảm hiệu suất đối với số lượng lớn các thao tác tìm kiếm

Giải pháp trên [cũng như giải pháp đầu tiên] bị cản trở bởi vấn đề khớp với chuỗi con chứ không phải *word*. Do đó, trận đấu trên sẽ thành công cho các chuỗi sau

  • “Xin chàozzzz”
  • “Xin chàoXin chàoLàm thế nàoDoYouDo”

Để xác định các từ rõ ràng thay vì chuỗi, mẫu cần được tinh chỉnh

$word = "Hello";
if[preg_match['/\b' . preg_quote[$word] . '\b/', $string]]
echo "true";

Ký tự `\b` biểu thị ranh giới từ. Một ranh giới từ được xác định bởi sự hiện diện của một ký tự không phải là chữ và số hoặc dấu gạch dưới. Vì vậy, một số trường hợp vẫn có thể bị lỗi

  • “Ờm_Xin chào”
  • “Xin chào2u”

Sử dụng `strstr`

Một kiểm tra gián tiếp để xác nhận sự hiện diện của từ

if[strstr[$string, 'Hello'] !== false]
echo 'true';

Đối với các tìm kiếm không phân biệt chữ hoa chữ thường, có thể sử dụng `stristr`. Phương pháp trên yếu hơn vì nó tìm kiếm chuỗi con, bỏ qua ranh giới từ

Sử dụng `substr_count`

Một chức năng tránh mọi vấn đề về boolean

if[substr_count[$string, 'Hello'] > 0]
echo 'true';

Một lần nữa, không có bất kỳ liên quan nào đến ranh giới từ và về cơ bản, hàm sẽ kiểm tra các chuỗi con. Mặc dù gọn gàng hơn, nhưng nó chậm hơn `strpos`

Thao tác chuỗi sử dụng `explode`

Chuỗi được tìm kiếm được phân tách thành các ký tự ranh giới từ phổ biến và các mảng kết quả sau đó được tìm kiếm thành viên của *word*

$word = 'Hello';
$spaceWords = explode[' ', $string];
$nonBreakingSpaceWords = explode[chr[160], $string]; //  
if[in_array[$word, $spaceWords] || 
in_array[$word, $nonBreakingSpaceWords]]
echo 'true';

Sử dụng `mb_strpos`

Hàm `mb_strpos` tương tự như hàm `strpos` nhưng đảm bảo rằng tìm kiếm an toàn nhiều byte. Mã vẫn giống hệt nhau

Biểu thức chính quy PHP còn được gọi là biểu thức chính quy là thuật toán khớp mẫu mạnh mẽ có thể được thực hiện trong một biểu thức duy nhất. Biểu thức chính quy sử dụng các toán tử số học như [+,-,^] để tạo các biểu thức phức tạp. Họ có thể giúp bạn hoàn thành các tác vụ như xác thực địa chỉ email, địa chỉ IP, v.v.

Tại sao sử dụng biểu thức chính quy

  • Biểu thức chính quy PHP đơn giản hóa việc xác định các mẫu trong dữ liệu chuỗi bằng cách gọi một hàm duy nhất. Điều này giúp chúng tôi tiết kiệm thời gian viết mã
  • Khi xác thực đầu vào của người dùng như địa chỉ email, tên miền, số điện thoại, địa chỉ IP,
  • Đánh dấu từ khóa trong kết quả tìm kiếm
  • Khi tạo mẫu HTML tùy chỉnh. Regex trong PHP có thể được sử dụng để xác định các thẻ mẫu và thay thế chúng bằng dữ liệu thực tế

Trong hướng dẫn PHP Regex này, bạn sẽ học

Hàm biểu thức chính quy tích hợp trong PHP

PHP đã xây dựng sẵn các hàm cho phép chúng ta làm việc với các hàm thông thường mà chúng ta sẽ tìm hiểu trong hướng dẫn Biểu thức chính quy PHP này. Hãy xem xét các hàm biểu thức chính quy thường được sử dụng 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_split[] 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 đó chia kết quả thành một mảng số
  • 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

Dưới đây là cú pháp cho một hàm biểu thức chính quy như PHP preg_match[], PHP preg_split[] hoặc PHP preg_replace[]

ĐÂY,

  • “function_name[…]” là PHP preg_match[], PHP preg_split[] hoặc PHP preg_replace[]
  • “/…/” Các dấu gạch chéo về phía trước biểu thị phần đầu và phần cuối của chức năng trình kiểm tra biểu thức chính quy PHP của chúng tôi
  • “‘/pattern/'” là mẫu mà chúng ta cần khớp
  • “chủ đề” là chuỗi văn bản được so khớp với

Bây giờ chúng ta hãy xem các ví dụ thực tế triển khai các hàm regex PHP ở trên

Preg_match[] trong PHP

Ví dụ đầu tiên sử dụng hàm preg_match[] trong PHP để thực hiện khớp mẫu đơn giản cho từ guru trong một URL nhất định

Đoạn mã dưới đây cho thấy việc triển khai chức năng kiểm tra preg_match[] cho ví dụ trên

________số 8

Duyệt đến URL http. //localhost/php tuts/preg_match đơn giản. php

Hãy kiểm tra phần mã chịu trách nhiệm về đầu ra của chúng tôi “preg_match[‘/guru/’, $my_url]” TẠI ĐÂY,

  • “preg_match[…]” là hàm biểu thức chính quy PHP
  • “‘/guru/'” là mẫu biểu thức chính quy được so khớp
  • “$my_url” là biến chứa văn bản được đối sánh

Sơ đồ dưới đây tóm tắt các điểm trên

PHP Preg_split[]

Bây giờ chúng ta hãy xem một ví dụ khác sử dụng hàm preg_split[] trong PHP

Chúng tôi sẽ lấy một cụm từ chuỗi và phân tách nó thành một mảng;

Chuỗi văn bản được sử dụng trong ví dụ này là “I Love Regular Expressions”

Đoạn mã dưới đây minh họa việc thực hiện ví dụ trên

Duyệt đến URL http. //localhost/phptuts/preg_split. php

PHP Preg_replace[]

Bây giờ chúng ta hãy xem hàm preg_replace[] trong PHP thực hiện so khớp mẫu và sau đó thay thế mẫu bằng một thứ khác

Đoạn mã dưới đây tìm kiếm từ guru trong một chuỗi

Nó thay thế từ guru bằng từ guru được bao quanh bởi mã css làm nổi bật màu nền

if[strpos[$str, "Hello"] !== false]
echo "true";
0

Giả sử bạn đã lưu tệp preg_replace. php, trình duyệt tới URL http. //localhost/phptuts/preg_replace. php

Siêu ký tự biểu thức chính quy

Các ví dụ trên đã sử dụng các mẫu rất cơ bản; . Bây giờ chúng ta hãy xem xét các siêu ký tự thường được sử dụng

Siêu ký tựMô tảVí dụ. Khớp với bất kỳ ký tự đơn nào ngoại trừ một dòng mới/. / khớp với bất kỳ thứ gì có một ký tự đơn^Khớp với phần đầu của hoặc chuỗi / loại trừ các ký tự/^PH/ khớp với bất kỳ chuỗi nào bắt đầu bằng PH$Match mẫu ở cuối chuỗi/com$/ khớp với guru99. com,yahoo. com vv. *Khớp với bất kỳ số không [0] hoặc nhiều ký tự/com*/ khớp với máy tính, giao tiếp, v.v. +Yêu cầu [các] ký tự phía trước xuất hiện ít nhất một lần/yah+oo/ khớp với yahoo\Được sử dụng để thoát ký tự meta/yahoo+\. com/ coi dấu chấm là một giá trị bằng chữ[…]Lớp ký tự/[abc]/ khớp với abca-zKhớp với các chữ cái viết thường/a-z/ khớp với thú vị, vui vẻ, v.v. A-Z Khớp các chữ cái in hoa/A-Z/ khớp với CÁI GÌ, NHƯ THẾ NÀO, TẠI SAO, v.v. 0-9 Khớp với bất kỳ số nào trong khoảng từ 0 đến 9/0-4/ khớp với 0,1,2,3,4

Danh sách trên chỉ cung cấp các siêu ký tự được sử dụng phổ biến nhất trong các biểu thức chính quy

Bây giờ chúng ta hãy xem một ví dụ khá phức tạp để kiểm tra tính hợp lệ của một địa chỉ email

if[strpos[$str, "Hello"] !== false]
echo "true";
1

Giải thích mẫu “[/^[a-zA-Z0-9. _-]+@[a-zA-Z0-9-]+\. [a-zA-Z. ]{2,5}$/]”

ĐÂY,

  • “‘/…/'” bắt đầu và kết thúc biểu thức chính quy
  • “^[a-zA-Z0-9. _-]” khớp với bất kỳ chữ cái viết thường hoặc viết hoa nào, số từ 0 đến 9 và dấu chấm, dấu gạch dưới hoặc dấu gạch ngang
  • “+@[a-zA-Z0-9-]” khớp với biểu tượng @ theo sau là chữ thường hoặc chữ in hoa, số từ 0 đến 9 hoặc dấu gạch ngang
  • “+\. [a-zA-Z. ]{2,5}$/” thoát khỏi dấu chấm bằng cách sử dụng dấu gạch chéo ngược, sau đó khớp với bất kỳ chữ cái viết thường hoặc in hoa nào có độ dài ký tự từ 2 đến 5 ở cuối chuỗi

Duyệt đến URL http. //localhost/phptuts/preg_match. php

Như bạn có thể thấy từ phân tích ví dụ trên, siêu ký tự rất hiệu quả khi khớp với các mẫu

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

Trả lời. Sử dụng Hàm strpos[] trong PHP . Hàm strpos[] trả về vị trí xuất hiện đầu tiên của chuỗi con trong chuỗi. Nếu không tìm thấy chuỗi con, nó trả về false.

Làm cách nào để tìm từ chính xác bằng regex trong PHP?

Bạn có thể sử dụng hàm preg_match[] của PHP để kiểm tra xem văn bản có chứa một từ cụ thể hay không. Sử dụng. Hàm preg_match[] được sử dụng để tìm sự trùng khớp chính xác của một mẫu trong chuỗi văn bản bằng cách sử dụng tìm kiếm biểu thức chính quy.

Làm cách nào để kiểm tra Preg_match trong PHP?

PHP. hàm preg_match[]. Hàm này tìm kiếm mẫu trong chuỗi, trả về true nếu mẫu tồn tại, ngược lại trả về false . Thông thường tìm kiếm bắt đầu từ đầu chuỗi chủ đề. Tham số tùy chọn offset được sử dụng để xác định vị trí bắt đầu tìm kiếm từ đâu.

Làm cách nào để tìm kiếm theo chuỗi trong PHP?

Hàm strpos[] tìm vị trí xuất hiện đầu tiên của một chuỗi bên trong một chuỗi khác. Ghi chú. Hàm strpos[] phân biệt chữ hoa chữ thường. Ghi chú. Hàm này an toàn nhị phân.

Chủ Đề