正則表達式必須掌握三個知識點,你知道多少?

什麼是正則表達式?

正則表達式又稱為規則表達式(模式表達式),它自身有完整的語法,為我們提供了一種更加靈活的字符串處理方法,正則表達式功能遠比php字符串函數強大的多。正則表達式通過特定的模式,與輸入的字符串比較,實現字符串的匹配、查找、替換等操作。這些模式的字符串,放在特定的正則表達式函數中使用才有效果。比如說“/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+(-.)\w+)*/”這是一個匹配郵箱的正則表達式。上面是一個簡單的正則表達式,它按照正則表達式語法規則構建的,由普通字符和特殊功能的字符組成的字符串,這些模式字符串放在特定的正則表達式函數中使用才能有效果。

正則表達式必須掌握三個知識點,你知道多少?

正則表達式作用

如果是第一次接觸正則表達式,會感覺到它很繁瑣,有種難以捉摸的感覺。正則表達式描述字符排列模式的一種自定義語法規則,在PHP中使用這種模式對字符串進行匹配、查找、替換及分割的操作,它的使用很廣。最常見的是用正則表達式去驗證用戶提交的用戶名、密碼等信息是否符合規則;按標點符號計算文章有多少句子;抓取頁面中的鏈接等;正則表達式不是PHP自己獨有的,在其他語言比如說c#和java語言中也有應用,在B/S軟件開發中、JavaScript、php以及mysql數據庫都可以使用正則表達式。

PHP中正則表達式特點

正則表達式必須掌握三個知識點,你知道多少?

在PHP中支持兩套正則表達式的處理函數庫。一套是PCRE庫提供的,與Perl語言兼容的正則表達式函數。使用preg_為前綴命名的函數,而且表達式都包含在定界符中,如斜線/。另一套是POSIX擴展語法的正則表達式函數,使用以“ereg_”為前綴命名的。PCRE和POSIX兩套函數庫功能相似,執行效率有所不同,一般來說PCRE效率要高些。

正則表達式語法規則

正則表達式有自己完整體系的語法,正則表達式作為一個匹配的模板,正則表達式=原子(比如說字符a到z)+特殊字符(元字符,比如說*、+和?等)+模式修正符。正則表達式由三部分構成的,最簡單的正則表達式,至少要包括一個原子。而且在與Perl語言兼容的表達式函數使用時,一定要加上定界符(包括在兩個反斜槓“/”之間)。

正則表達式必須掌握三個知識點,你知道多少?

1、定界符

使用與Perl兼容的正則表達式,通常需要將模式表達式放入定界符之間。最常見的定界符是反斜線“/”,除了字母、數字和正斜線“\”以外的任何字符都可以作為定界符號,例如“#”、“!”、“{}”等都是可以的。

2、原子

原子是正則表達式基本單位,每個正則表達式模式至少有一個原子。原子包含所有的大小寫字母、數字、標點符號、其他的符號。例如,a-z、A-Z、0-9等,還有一些非打印的字符,如下圖:

正則表達式必須掌握三個知識點,你知道多少?

3、元字符

元字符就是正則表達式的具有特殊意義的字符,例如*、+、?等。如果正則表達式中包含元字符本身,使其失去特殊的含義必須加上“\”進行轉義。正則表達式常見的元字符如下圖:

正則表達式必須掌握三個知識點,你知道多少?

在網頁中任何屬於HTML有效的鏈接標籤,都可以和這個正則表達式模式匹配上。該模式拆分後如下:

1、定界符使用是兩個反斜線“/”之間,模式放在它之間聲明。

2、原子用到等普通字符和\t、\r、\n等轉移符。

3、元字符用到[]、?、*、+等特殊含義的字符。

4、用到的模式修正符是在定界符後加一個反斜槓之後的三個字符“s”、“i”和“m”。

今天關於PHP中的正則表達式內容先說到這,改天咱們在接著聊。每天學習一個知識點,每日寄語“當你停止嘗試時,就是失敗的時候。”


分享到:


相關文章: