首頁 > 後端開發 > php教程 > PHP 中的 preg_match (函數)

PHP 中的 preg_match (函數)

PHPz
發布: 2024-08-29 12:49:51
原創
1034 人瀏覽過

PHP 程式語言的 preg_match() 函數在字串中搜尋模式,只有當模式存在時,函數才會傳回 TRUE,否則 preg_match() 函數會傳回 FALSE。 Preg_match() 函數基本上使用一些參數來運作,這些參數在搜尋輸入字串資料/字串模式內部的字串模式時非常有用且有幫助。第一個參數是儲存要搜尋的字串模式。第二個參數是儲存輸入的字串。我們使用 preg_match() 函數在字串資料中搜尋所需的字串模式。 「matches」參數,當包含並與 print 一起使用時,將找到匹配的字串內容並將其顯示在輸出中。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法:

Int preg_match($pattern, $input, $matches, $flags, $offset)
登入後複製

說明:

  • PHP 語言的 preg_match() 函數通常只接受 5 個參數,如上文語法欄所述,這些參數位於 preg_match() 函數內部。
  • preg_match() 函數包含五個參數:pattern、input、matches、flags 和 offset。
  • preg_match() 函數中的每個參數都有助於在包含字母數字字串資料的大字串或文件中搜尋字串模式。

preg_match 在 PHP 中如何運作?

PHP 程式語言中的 preg_match() 函數在大量字串句子或其他資料中搜尋字串模式。如果找到字串模式,它只會傳回 TRUE 值。否則,它會傳回 FALSE 值。 PHP 的 Preg_match() 函數通常是基於 preg_match () 函數內部包含的五個參數來運作。

下面給的是參數:

1。模式參數:這是PHP的preg_match()參數,用於保存模式以將字串作為字串進行搜尋。我們透過在函數內使用“$”符號將模式表示為變數。

2。輸入參數:輸入參數位於 preg_match() 函數內部,保存字串輸入/字串輸入值。

3。匹配參數: 匹配參數位於 preg_match() 內部,僅當匹配存在時才會提供搜尋結果。匹配意味著相同的字串存在或不存在。 $matches[0] 實際上包含全文,即完全匹配的字串模式。 $matches[1] 將包含與第一個帶括號的捕獲子模式匹配的字串文字等..

大多數字串模式可以在 $matches[0][0], $matches[1][0], $matches[2][0], $matches[3][0] 等處找到。 $matches[0][1]、$matches[1][1]、$matches[2][1]和$matches[3][1],你會發現NULL,這意味著0作為字串模式值,因為它沒有在matches 數組中儲存任何內容。

4。 Flags 參數:flags 參數可以包含一些其他標誌,這對於處理字串模式搜尋非常有幫助。

  • PREG_OFFSET_CAPTURE FLAG: 如果將該標誌傳遞給 preg_match() 函數,它將傳回每個匹配字串附加的偏移量。
  • PREG_UNMATCHED_AS_NULL FLAG: 此標誌有助於報告為 NULL。當該標誌被傳遞時,子模式將被報告為 NULL,因為子模式根本不匹配。

5。偏移參數: preg_match() 函數的偏移參數對於從作為輸入發送的字串的開頭進行搜尋非常有幫助。此偏移參數是可選的,並不總是需要的。您可以根據需要使用它。 “offset”參數指定字串搜尋的起始位置。

6。 preg_match() 的回傳值: 只有當字串模式存在時,PHP 的 preg_match() 函數才會傳回 TRUE,否則 preg_match() 函數會傳回 FALSE。

PHP 中的 preg_match 範例

以下是範例:

範例#1

這說明了 preg_match() 使用 PREG_OFFSET_CAPTURE 標誌。 「$pavan1」被建立並儲存為字串值「PavanKumarSake」並指派給「$pavan1」。然後使用參數宣告 preg_match()。

‘/(Pavan)(Kumar)(Sake)/’ is the pattern parameter that holds the pattern, which is to search in the input string/string value. Next, we insert the variable “$pavan1” as an input variable. This variable usually contains the string element that we need to search to determine if the string variable’s value exists within it or not. Next, we place the variable “$matches1” after the comma following the variable “$pavan1”. This is helpful to check at what position the patterns are available inside the input string ”PavanKumarSake”.

In the above preg_match() working explanation, we said that what $matches[0] and $matches[1] will return. Likewise, in the below example, $matches[1] will provide the result that is/are fully matched with the pattern/patterns. So the output of array[0] is “PavanKumarSake” because it contains the full string/text.

Then array[1][0] will be “Pavan” then array[2][0] is “Kumar” and array[3][0] is “Sake” based on example1’s output. Then the “print_r($matches1)” is to print what matches are available inside the input string and also shows at what position the string pattern/patterns are available inside the string pattern. Print_r will show the output of the above preg_match() program of PHP Programming Language.

Code:

<?php
$pavan1 = 'PavanKumarSake';
preg_match('/(Pavan)(Kumar)(Sake)/', $pavan1, $matches1, PREG_OFFSET_CAPTURE);
print_r($matches1);
?>
登入後複製

Output:

PHP 中的 preg_match (函數)

Example #2

In the example below, we assign the string value “www.profitloops.com” to the variable $pro_url. To check if the word “profit” is present in the variable $pro_url, you can use an if statement with the preg_match function. If the function returns a non-zero value, indicating a match, the if condition will consider it as true.

You can then execute the desired statement. The statement “The URL www.profitloops.com contains profit” will be printed if the word “profit” is present in the URL. The browser will display the output below the output section. If the word “profit” is not present in www.profitloops.com, then statements that are in the ELSE condition will be printed.

We use another IF statement to check if the word “loops” appears in the word located at www.profitloops.com. If the condition is a fault, then the ELSE condition’s statements will be printed. But here, the IF conditions are TRUE, so the statements that are inside of the IF will be printed.

Code:

<?php
$pro_url = "www.profitloops.com";
if (preg_match("/profit/", $pro_url))
{
echo "the url $pro_url contains profit , ";
}
else
{
echo "the url $pro_url does not contain profit , ";
}
if (preg_match("/loops/", $pro_url)){
echo "the url $pro_url contains loops , ";
}
else{
echo "the url $pro_url does not contain loops , ";
}
?>
登入後複製

Output:

PHP 中的 preg_match (函數)

以上是PHP 中的 preg_match (函數)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板