PHP中有關正規表示式的函式集錦

2021-08-01 14:56:39 字數 2737 閱讀 2897

在php中有兩套正規表示式函式庫。一套是由pcre(perl compatible regular expression)庫提供的。pcre庫使用和perl相同的語法規則實現了正規表示式的模式匹配,其使用以「preg_」為字首命名的函式。另一套是由posix(portable operation system inte***ce)擴充套件庫提供的。posix擴充套件的正規表示式由posix 1003.2定義,一般使用以「ereg_」為字首命名的函式。

兩套函式庫的功能相似,執行效率稍有不同。一般而言,實現相同的功能,使用pcre庫的效率略佔優勢。下面詳細介紹其使用方法。

1.preg_match()函式原型:int preg_match (string pa

tter

n,st

ring

pattern,stringcontent [, array $matches])

preg_match ()函式在co

nten

t字串

中搜尋與

content字串中搜尋與pattern給出的正規表示式相匹配的內容。如果提供了ma

tche

s,則將

匹配結果

放入其中

。 matches,則將匹配結果放入其中。matches[0]將包含與整個模式匹配的文字,$matches[1]將包含第乙個捕獲的與括號中的模式單元所匹配的內容,以此類推。該函式只 作一次匹配,最終返回0或1的匹配結果數。

2.ereg()和eregi()ereg()是posix擴充套件庫中正規表示式的匹配函式。eregi()是ereg()函式的忽略大小寫的版 本。二者與preg_match的功能類似,但函式返回的是乙個布林值,表明匹配成功與否。需要說明的是,posix擴充套件庫函式的第乙個引數接受的是正則 表示式字串,即不需要使用分界符。

3.preg_grep()函式原型:array preg_grep (string pa

tter

n,ar

ray pattern,arrayinput)

preg_grep()函式返回乙個陣列,其中包括了in

put數

組中與給

定的input陣列中與給定的pattern模式相匹配的單元。對於輸入陣列$input中的每個元素,preg_grep()也只進行一次匹配。**6.3給出的示例簡單地說明了preg_grep()函式的使用。

1.preg_match_all()與preg_match()函式類似。如果使用了第三個引數,將把所有可能的匹配結果放入。本函式返回整個模 式匹配的次數(可能為0),如果出錯返回false。   

2.多行匹配

僅僅使用posix下的正則表式函式,很難進行複雜的匹配操作。例如,對整個檔案(尤其是多行文字)進行匹配查詢。使用ereg()對此進行操作的乙個方法是分行處理。

1.ereg_replace()和eregi_replace()  函式原型:string ereg_replace (string pa

tter

n,st

ring

pattern,stringreplacement, string $string)

string eregi_replace (string pa

tter

n,st

ring

pattern,stringreplacement, string $string)

ereg_replace()在st

ring

中搜尋模

式字串

string中搜尋模式字串pattern,並將所匹配結果替換 為re

plac

emen

t。當 replacement。當pattern中包含模式單元(或子模式)時,re

plac

emen

t中形如

「\1」或

「 replacement中形如「\1」或「1」的位置將依次被這些子 模式所匹配的內容替換。而「\0」或「$0」是指整個的匹配字串的內容。需要注意的是,在雙引號中反斜線作為轉義符使用,所以必須使用「\\0」,「 \\1」的形式。

eregi_replace()和ereg_replace()的功能一致,只是前者忽略大小寫。

2.preg_replace()函式原型:mixed preg_replace (mixed pa

tter

n,mi

xed pattern,mixedreplacement, mixed su

bjec

t[,i

ntsubject[,intlimit])

preg_replace較ereg_replace的功能更加強大。其前三個引數均可以使用陣列;第四個引數$limit可以設定替換的次數,預設為全部替換。

1.split()和spliti()函式原型:array split (string pa

tter

n,st

ring

pattern,stringstring [, int $limit])

本函式返回乙個字串陣列,每個單元為st

ring

經正則表

達式string經正規表示式pattern作為邊界分割出的子串。如 果設定了li

mit,

則返回的

陣列最多

包含limit,則返回的陣列最多包含limit個單元。而其中最後乙個單元包含了$string中剩餘的所有部分。spliti是split的 忽略大小版本。

2.preg_split()本函式與split函式功能一致。

Python中有關正規表示式

今天學習了python中有關正規表示式的知識。關於正規表示式的語法,不作過多解釋,網上有許多學習的資料。這裡主要介紹python中常用的正規表示式處理函式。re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import re text jgood is a handsom...

正規表示式有關的函式

函式查詢 實力應用 量詞語法描述 匹配任何至少包含乙個前導字串 匹配任何包含零個或多個前導字串 匹配任何包含零個或乙個前導字串 匹配任意字串 匹配任何包含x 個前導字串 匹配任何包含x 到y 個前導字串 匹配任何包含至少x 個前導字串 匹配字串的行尾 匹配字串的行首 匹配字串的左邊或者右邊 包圍乙個...

PHP正規表示式函式

關於正規表示式 regular expression 似乎譯成 字串解析處理,較合乎字面上的意義。但目前所有的相關書籍都譯成正規表示式或是正規表示法.等等,實際上是負責字串解析比對,並對字串做相關的處理。ereg 字串比對解析。ereg replace 字串比對解析並取代。eregi 字串比對解析,...