php關於match數組的說明(數組match方法)

本文目錄一覽:

php preg_match匹配 字元

$str = ”;

preg_match_all(‘/(images\/{2}\d+\/{1}*.jpg)/i’, $str, $src);

print_r($src);

php數組[0],[1],[2]分別是什麼意思?

這個是正則表達式中的「反向引用」,用以匹配特定的「局部內容」,

在這裡$match[2]是一個數組,數組的內容為”aaa” ,”cccc”;

php函數preg_match參數含義

是一個正則表達式,例如*代表任意+d代表正整數等等,更多的信息你要查看關於正則方面的資料~

PHP函數preg_match_all正則表達式的基本使用詳細解析

了解正則表達式之前,須要掌握一些常用的正則表達式的基礎知識,這些如果能記得最好記得,記不住須要用的時候能查到就行,就多個特殊字元,所以說正則表達式玩的就是特殊,具體大家可以查看更加細緻的說明。

preg_match_all函數具體說明大家可以查看PHP手冊,本文運用

preg_match_all用於測試正則表達的效果。

實例代碼:

複製代碼

代碼如下:

$html

=

‘div

id=”biuuu”jb51.net/divdiv

id=”biuuu_2″jb51.net2/divdiv

id=”biuuu_3″jb51.net3/div’;

實例要求:分別將每一個DIV元素的ID和內容取出,如biuuu,biuuu_2,biuuu_3,jb51.net,jb51.net2和jb51.net3(一些常用的抓站要領就是這樣匹配的)

分析:字元串是一個基本的HTML元素,每一個DIV元素對應該一個ID和內容,並且是獨立的,首先考慮如何

取出一個DIV內的ID值和內容,如:jb51.net,然後匹配其它類似的元素。一個DIV中須要取出兩個值,也就是兩個匹配的表達式,第一個表達式用於匹配ID值(biuuu),第二個表達式用於匹配ID的內容(jb51.net),正則表達式常用的表達式運用小括弧,那麼前面的元素將會變成如下形式:

div

id=”(biuuu)”(jb51.net)/div

div

id=”(表達式1)”(表達式2)/div

好,運用如上小括弧把須要匹配的區域執行

了劃分,接下來就是如何

匹配各個表達式內的內容,我們猜想一個ID可能是字母,數字或下劃線,那這就變得基本了,運用中括弧就可以實現,如下:

表達式1:[a-zA-Z0-9_]+

(表示匹配大小寫字母,數字和下劃線)

那如何

匹配表達式2,因為ID的內容可以是任意的字元,但是要留心,不能匹配或字元,因為如果匹配這兩個字元將會把後面運用的DIV都匹配出來,因此須要排除這兩個字元開始的元素,也就是不匹配以或字元,如下:

表達式2:[^]+

(表示不匹配和字元)

這樣,須要匹配的子表達式就實現了,但是還要須要匹配一個

的表達式,要領如下:

表達式:/

‘\”(表達式1)\”‘(表達式2)\/div/

留心其中的雙引號”和/須要運用

\轉義字元轉義,然後把前面兩個表達式放進去,

如下:

‘\”([a-z0-9_]+)\”‘/div

id=\”([a-z0-9_]+)\”([^]+)\/div/

這樣就實現一個匹配每一個DIV元素ID值和內容的正則表達式,然後運用

preg_match_all函數測試如下:

複製代碼

代碼如下:

$html

=

‘div

id=”biuuu”jb51.net/divdiv

id=”biuuu_2″jb51.net2/divdiv

id=”biuuu_3″jb51.net3/div’;

preg_match_all(‘/div\sid=\”([a-z0-9_]+)\”([^]+)\/div/’,$html,$result);

var_dump($result);

結果:

複製代碼

代碼如下:

array(3)

{

[0]=

array(3)

{

[0]=

string(30)

“div

id=”biuuu”jb51.net/div”

[1]=

string(33)

“div

id=”biuuu_2″jb51.net2/div”

[2]=

string(33)

“div

id=”biuuu_3″jb51.net3/div”

}

[1]=

array(3)

{

[0]=

string(5)

“biuuu”

[1]=

string(7)

“biuuu_2”

[2]=

string(7)

“biuuu_3”

}

[2]=

array(3)

{

[0]=

string(8)

“jb51.net”

[1]=

string(9)

“jb51.net2”

[2]=

string(9)

“jb51.net3”

}

}

共有三個表達式,分別顯示每一個表達式匹配的值,並以數組的形式存儲,這樣就把每一個DIV元素的ID和內容取出。運用正則表達式最主要還是要知道須要什麼,然後跟椐須要執行

匹配,並且思路清晰,並適當的藉助preg_match_all函數執行

輸出調試,非常方便。

PHP中preg_match()和preg_replace()的一些問題

(一)當中的!是正則表達式(簡稱正則式)的分割界定符號。意味著開始的!和第二個!之間是正則式的【主式】(為了便於你理解,不得不這麼做個偽定義),我們大多數時候都喜歡用「/」作為分割界定符號,因為在(一)中,剛好已經有「/」在【主式】中了。第二個!後面的isU等,是正則式的修正符,至於各個修正符的用法和作用,強烈建議你去查看PHP手冊。

(二)這個[1]中的1,代表著匹配到結果賦值給$outputs後,$outputs數組的下標為1的值,就是前面【主式】中”(*)”匹配到的內容。

(三)第三個,是正則式中「\」轉義符號的用法體現。在正則式中「.」是匹配所有字元的(暫不考慮修正符模式),「\.」卻可以匹配「.」了。在這個正則式中,\/wap\.php將會匹配到「/wap.php」,並用「index.php」去替換掉它。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/187203.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-27 13:36
下一篇 2024-11-27 13:36

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有著廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進位的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進位。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29

發表回復

登錄後才能評論