PHP中正規表示式學習及應用

2022-08-24 23:00:13 字數 2164 閱讀 9362

php中正規表示式

1、正規表示式的介紹和作用

2、php中兩個常用的正則函式

3、正規表示式中包括的元素

4、正規表示式中的「原子」

1、正規表示式的介紹和作用

什麼是正規表示式

在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串

的需要。正規表示式就是用於描述這些規則的語法。

主要的作用是:分割、匹配、查詢、替換

2、php中兩個常用的正則函式

preg_match 正則函式,以perl語言為基礎

preg_match ( mode, string subject , array matches )

ereg 正則函式,以posix基礎 (unix 、 script)

ereg ( mode, string subject , array regs )

3、正規表示式中包括的元素

(1)、原子(普通字元:a-z a-z 0-9 、原子表、 轉義字元)

(2)、元字元 (有特殊功能的字元)

(3)、模式修正符 (系統內建部分字元 i 、m、s、u…)

(1)正規表示式中的「原子」

①a-z a-z _ 0-9  //最常見的字元

②(abc) (skd)  //用圓括號包含起來的單元符合

③[abcs] [^abd] //用方括號包含的原子表,原子表中的^代表排除或相反內容

④轉義字元

\d  包含所有數字[0-9]

\d  除所有數字外[^0-9]

\w  包含所有英文本元[a-za-z_0-9]

\w  除所有英文本元外[^a-za-z_0-9]  \s   包含空白區域如回車、換行、分頁等 [\f\n\r]

……(2)正規表示式元字元

*  匹配前乙個內容的0次1次或多次

.  匹配內容的0次1次或多次,但不包含回車換行

+ 匹配前乙個內容的1次或多次

?匹配前乙個內容的0次或1次

|  選擇匹配類似php中的| (因為這個運算符合是弱型別導致前面最為整體匹配)

^  匹配字串首部內容

$  匹配字串尾部內容

\b 匹配單詞邊界,邊界可以是空格或者特殊符合

\b 匹配除帶單詞邊界意外內容

匹配前乙個內容的重複次數為m次

匹配前乙個內容的重複次數大於等於m次

匹配前乙個內容的重複次數m次到n次

( ) 合併整體匹配,並放入記憶體,可使用\1 \2…依次獲取

(3)正規表示式中的「模式修正符」

1、運算順序    2、模式修正符

1、運算順序

依然遵循從左到→右的運算規則

2、模式修正符

模式修正符是為正規表示式增強和補充的乙個功能,使用在正則之外

正規表示式在php中的應用

1、匹配功能

2、替換功能  

3、分割功能

1、匹配功能

preg_match_all 全部匹配函式

preg_match_all ( string pattern, string subject, array matches [, int flags] )

對結果排序使 $matches[0] 為全部模式匹配的陣列

用途:擷取比較詳細的內容,採集網頁,分析文字

2、替換功能 

preg_replace 正則替換函式

preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )

用途:替換一些比較複雜的內容上,也可以用於內容的轉換上

3、分割功能 

preg_split 正則切割

preg_split ( string pattern, string subject [, int limit [, int flags]] )

PHP中正規表示式學習及應用(二)

正規表示式中的 元字元 匹配前乙個內容的0次1次或多次 匹配內容的0次1次或多次,但不包含回車換行 匹配前乙個內容的1次或多次 匹配前乙個內容的0次或1次 選擇匹配類似php中的 因為這個運算符合是弱型別導致前面最為整體匹配 匹配字串首部內容 匹配字串尾部內容 b 匹配單詞邊界,邊界可以是空格或者特...

PHP中正規表示式

正規表示式一般表示式的形式如下 love 其中位於 定界符之間的部分就是將要在目標物件中進行匹配的模式。為了能夠使使用者更加靈活的的定製模式內容,正規表示式提供了專門的 元字元 所謂元字元就是指那些表示式中具有特殊意義的字元,可以用來規定其前導字元 即在元字元前面的字元 在目標物件中的出現模式。較為...

JS中正規表示式

js中正規表示式有幾種不同的使用方法,一些用法是通過字串物件來使用,另外一些通過正規表示式物件使用。一 regexp 正規表示式 的屬性和方法 1 屬性 regexp的例項有幾個唯讀的屬性 global表示是否為全域性匹配,igorecase表示是否忽略大小寫,multiline表示是否為多行匹配,...