首頁 >後端開發 >php教程 >Php中的正規表示式

Php中的正規表示式

不言
不言原創
2018-05-09 11:49:301645瀏覽

這篇文章主要介紹了關於Php中的正規表示式,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

簡單介紹正規表達式及其作用

Ø 正規表示式的了解

正規表示式就是描述字串排列模式的一種自訂語言規則

如果可以使用字串處理函數完成的任務,就不要使用正規表示式

有一些複雜性的運算,只能用正規表示式

正規表示式也稱為一種模式表達式

正規表示式就是透過具有特定規則的模式,在與輸入的字串資訊進行比較、分割、尋找、替換等操作

Ø 正規表示式的特性

正規表示式也是一個字串

由具有由特殊意義的字串組成的字串

具有一定編寫規則,也是一種模式

看做是一種編程語言:是用一些特殊字符,按照規則編寫出來一個字串,形成一種模式

注意:如果正則表達式不和函數一起使用,則就是一個字串,如果正規表示式放到某個函數中使用,才能發揮正規表示式的真正作用

Ø PHP中提供了兩套正規表示式函數函式庫

Posix擴充正規表示式ereg_開頭的函數

 perl相容正規表示式 #preg_開頭的函數

 建議使用prel 來相容正規表示式函數函式庫

#正規表示式的語法

Ø 正則定界符

##Ø 

正規表示式中的原子

Ø 

正規表示式中的元字元

#Ø 

正規表示式的模式修正符號

正規定界符

正規的定界符就是用來宣告正規表示式邊界的符號。

正規表示式常用的邊界符為 /,實際上任何非數字字母以及反斜線##\ 以外的任意字元都可以做正規表示式的邊界符。

注意:一個完整的正規表示式有兩個邊界符號

一個是字串型別的引號邊界符號 ''

一個是正規表示式的邊界符號 //(一般用

/)

n # ##整體就是### '//'############正規表示式的原子############ ###組成正規表示式的最小單位就是原子############正規的數字字母都是原子,大部分看不見的字元也是原子。 ######

例如:\n\r\t...這些轉譯字元都是元素

Ø 正則中原子

 \d 表示 0-9之間的一個數字

 #\D 表示除了0-9之間的任一字元

 \s 表示符合任一個空白字元包含 \n\r\t..

 \S 表示除了空白符號或轉譯字元以外的任一個字元

 \w 表示大小寫字元數字以及下底線當中任一個字元

\W 表示除了大小寫字母數字以及底線之外的任一個字元

正則表達式中的元字元(原子修飾符)

Ø [] 原子列表

##   

表示在指定的字元中選擇一個原子

 

例如:[5-9] 表示#5 6 7 8 9連續得字元允許縮寫為:[開始字元 -結束字元]

Ø  ##[^] 排除列表

例如:[^4 ] 表示除了4以外的任一個字元都可以

Ø 

用元字元(原子修飾符)來模擬原子

\d  [0 -9]                  \D [^0-9]  

 \D [^0-9]   \D [^0-9]  

#s [n\) #               \S[^\n\r\t]

\w[a-zA-Z0-9] 

##\w[a-zA-Z0-9] 

##\w[a-zA-Z0-9]  ## \W[^a-zA-Z0-9]Ø 原子數量修飾符 

# ? 

 表示前面的原子出現0次或#1

## 表示前面的原子出現1次或多次 

##*### ###表示前面的原子出現######0######次或多次######

Ø 原子數修飾清單

n {m,n} 表示前面的原子最小出現m次,最多出現n

n {m,}表示前面的原子最少 出現m

n {m} 表示前面的原子##只能出現m

Ø 

原子數修飾清單模擬數量修飾符

 {0,1}

#  {1,} 

*  {0,}

Ø 

字串邊界修飾符

^ 表示以指定字元開頭的內容

 $ 表示以指定字元結尾的內容

注意:

^ $後表示精準修飾限定兩者之間的內容是否一致

如果要使用##^$ 可以符合每一行的開始和結束部分,需要使用類比修正符 

Ø 

| 選擇修飾符

或與且類似

Ø 

#() 模式單元

改變優先權

將多原子視為一個原子,可以使用原子數修飾因子

將符合到的括號中的內容暫時儲存為記憶體中

如果使用

()只是為了模擬一個原子使用原子數量修飾符,那麼可以在括號的開始處使用?: 來接觸存於內容的作用,提高效率

可以將括號的內容在函數的輔助下進行反向引用運算

#Ø 

元字元

 

.(點)符合除了\n之外的任一字元

正規表示式類比修正符號

Ø  i 忽略大寫

Ø  x 忽略正規表示式中得空白

Ø # s 使用.(

元字元

)可以可以符合到#\n 

Ø 

 S 加速配對#Ø  

U

 模式 #改變貪婪模式改變貪婪模式,程式預設是貪婪模式,符合最遠的結束為止,我們可以在正規則中使用*?

符合任意字元的同時使用非貪婪模式

注意:如果此時程式為貪婪模式,使用

U

##後,則程式變為非貪婪模式。 若此時程式為非貪婪模式,使用U後,程式變成貪婪模式

正規表示式的函數

Ø preg_grep()

 

傳回與模式相符的陣列單元#@param1:正規表示式#@param2:要匹配的陣列

#@param3:可選參數

預設為false。設定為true表示傳回與模式匹配相反的陣列單元

傳回值:傳回與模式匹配的陣列單元Ø 

preg_match() 進行一次正規比對適合做查詢有沒有

@param1#正規表示式

@param2 要符合的字串@param3

可選參數,傳回與正規表示式相符的內容 回傳值:成功回傳1,失敗回傳

###0   1######表示符合的次數####### ####Ø ######preg_match_all()### ###進行正規比對### ###適合查詢有多少#####################################################################################

@param1正規表示式

@param2#:

@param2#:要符合的字串

@param3

可選參數,傳回與正規表示式相符的內容傳回值:傳回符合的次數,若沒有符合帶則回傳0

#Ø preg_split()  

用正規表示式分隔字串

@param1:正規表示式

##@param2 #:要分隔的字串

@param3#傳回分隔後的陣列

Ø preg_replace() 執行正規表示式的取代

##@param1#:要尋找正規表示式

@param2:要取代的內容

##@param3# :在哪裡進行替換操作(陣列還是字串)

傳回值:傳回替換後的陣列或字串

 相關建議:### ######php的正規表​​示式######

以上是Php中的正規表示式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn