經常使用的正則表達式其實很簡單,並且應用範圍很廣,這裏作最經常使用的正則表達式的語法整理。
特殊符號使用類:
^ $(開頭和結尾) 完成的檢測一個字符串是否符合要求,通常用來校驗輸入字符串的正確性
cba(abc|bca)[abc] 通常用來匹配對應的字符串()表示整個字符串[]表示匹配到裏面的某個 會增長一個|是選擇符號
* + ? 分別表示不限次數 一次以上,0次或者1次式子
{n,m} 限定個數
另外倆個常見的特殊匹配\s(匹配空白字符).(匹配除換行符外的任何字符)正則表達式
貪婪匹配與貪婪匹配
<a> </a>
匹配的時候<a*?> 這樣就會盡量的減小匹配到的字符串數組
大部分的正則表達式,上述幾個已經夠用。
1.匹配常見的手機號碼(常見是指13 15 17 18開頭的手機號)(這是很是常見的一個匹配,輸入手機號碼的時候須要進行匹配)
^1[3578]\d{9}$
^表示以1開始
[3578]表示裏面隨便讀取一個
\d匹配任意一個數字字符等價於[0-9]
$匹配的結尾 配上了這個字符,就是對給出的字符串進行嚴格檢測,
PS:當沒有開始符和結束符的時候,會獲得多個匹配結果,若是是用preg_match_all()函數進行匹配,會把多個結果存到一個數組裏面。因此正則表達式的倆個用途顯現出來了:一個是對給出的字符串進行檢測其是否是符合要求(preg_match($pattern,$subject)),另外一個做用是讀取給定的文本,把裏面對應的東西搜索出來(preg_match_all($pattern,$subject,$arr))
2.檢測一個郵箱(常見類型的郵箱)
[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+
\w 匹配包括下劃線的任何單詞字符。等價於'[A-Za-z0-9_]'
[\w-]+表示最前面最少出現一次或者屢次\w-裏面包含的字符
()匹配某個類型,裏面做爲一個總體進行匹配
* 表示前面的匹配式子匹配0次或者屢次(這個符號很容易和+搞混淆,它是能夠匹配0次的)
\. 匹配的是小數點 特殊字符匹配的時候都須要轉義符
(\.[\w-]+)* 匹配前面的小數點和字符串
[\w-]+(\.[\w-]+)+ 這段和前面差很少,最少匹配到一個.的字符串
應用場景:用戶註冊的時候判斷其是否是合法的郵箱,採集使用,採集用戶的郵箱,進行對應的儲存
函數