本文實(shí)例講述了php正則表達(dá)式基本知識(shí)與應(yīng)用。分享給大家供大家參考,具體如下:
概述
正則表達(dá)式是一種描述字符串結(jié)果的語法規(guī)則,是一個(gè)特定的格式化模式,可以匹配、替換、截取匹配的字符串。常用的語言基本上都有正則表達(dá)式,如JavaScript、Java等。其實(shí),只有了解一種語言的正則使用,其他語言的正則使用起來,就相對(duì)簡(jiǎn)單些。文本主要圍繞解決下面問題展開。
① 有哪些常用的轉(zhuǎn)義字符
② 什么是限定符與定位符
③ 什么是單詞定位符
④ 特殊字符有哪些
⑤ 什么是逆向引用以及怎樣使用逆向引用
⑥ 匹配模式
⑦ php中怎樣使用正則表達(dá)式
⑧ php中哪些方面需要用到正則
⑨ 怎樣進(jìn)行郵箱匹配,url匹配,手機(jī)匹配
⑩ 怎樣使用正則替換字符串中某些字符
⑪ 貪婪匹配與惰性匹配區(qū)別
⑫ 正則表達(dá)式之回溯與固態(tài)分組
⑬ 正則優(yōu)缺點(diǎn)有哪些
正則表達(dá)式的基本知識(shí)匯總
行定位符(^與$)
行定位符是用來描述字符串的邊界。“$”表示行結(jié)尾“^”表示行開始如"^de",表示以de開頭的字符串 "de$",表示以de結(jié)尾的字符串。
單詞定界符
我們?cè)诓檎业囊粋€(gè)單詞的時(shí)候,如an是否在一個(gè)字符串”gril and body”中存在,很明顯如果匹配的話,an肯定是可以匹配字符串“gril and body”匹配到,怎樣才能讓其匹配單詞,而不是單詞的一部分呢?這時(shí)候,我們可以是喲個(gè)單詞定界符\b。
\ban\b 去匹配”gril and body”的話,就會(huì)提示匹配不到。
當(dāng)然還有一個(gè)大寫的\B,它的意思,和\b正好相反,它匹配的字符串不能使一個(gè)完整的單詞,而是其他單詞或字符串中的一部分。如\Ban\B。
選擇字符(|) ,表示或
選擇字符表示或的意思。如Aa|aA,表示Aa或者是aA的意思。注意使用”[]”與”|”的區(qū)別,在于”[]”只能匹配單個(gè)字符,而”|”可以匹配任意長(zhǎng)度的字符串。在使用”[]”的時(shí)候,往往配合連接字符”-“一起使用,如[a-d],代表a或b或c或d。
排除字符,排除操作
正則表達(dá)式提供了”^”來表示排除不符合的字符,^一般放在[]中。如[^1-5],該字符不是1~5之間的數(shù)字。
限定符(?*+{n,m})
限定符主要是用來限定每個(gè)字符串出現(xiàn)的次數(shù)。
限定字符 | 含義 |
---|---|
? | 零次或一次 |
* | 零次或多次 |
+ | 一次或多次 |
{n} | n次 |
{n,} | 至少n次 |
{n,m} | n到m次 |
如(D+)表示一個(gè)或多個(gè)D
點(diǎn)號(hào)操作符
匹配任意一個(gè)字符(不包含換行符)
表達(dá)式中的反斜杠(\)
表達(dá)式中的反斜杠有多重意義,如轉(zhuǎn)義、指定預(yù)定義的字符集、定義斷言、顯示不打印的字符。
轉(zhuǎn)義字符
轉(zhuǎn)義字符主要是將一些特殊字符轉(zhuǎn)為普通字符。而這些常用特殊字符有”.”,”?”、”\”等。
指定預(yù)定義的字符集