【PHP篇】正則表示式
$rex=”/gg*d/i”表示匹配到g(G)開始d(D)結束且中間只能有G(D)出現任意次,不區分大小寫
1、 定界符號:(1)/ 內容 / (2)|| (3){ } (4)等除字母、數字、“\”以外的字元//必須成對出現
2、 內容裡存在原子:原子是匹配單元,必須存在
可以為列印字元:[a-z]、[A-Z]、等可見字元
可以為非列印字元:鍵盤的回車對應\n匹配
轉義字元:如點代表所有字元所有可用\.表示點,其他如【/】、【?】等
函式:preg_quote($字串1)//會將字串1中所有可轉義的字元轉義後返回新字串
特殊符號字元:所有數字【\d】、所有非數字【\D】、任意一個字(a-z,A-Z,下劃線)【\w】、
任意非字【\W】、任意一個原子【.】(點)
所有空白(空格、tab鍵、換行)【\s】、任意非空白【\S】
自定義:[字元1字元2字元3]//也可為[a-zA-Z]區間//匹配任意一個// ^為取反,寫在中括號內
3、 內容裡存在原子符:對原子的修飾補充
【*】修飾前面的單個原子可以出現任意次//如goodxgooodxgd 正則可寫為:/go*d/
【+】修飾前面的單個原子至少要出現1次//如上 不可匹配gd
【?】修飾前面的單個原子只能出現0次或者1次
【{ n }】修飾前面的單個原子只能出現n次
【{a,b}】修飾前面的單個原子只能出現 [ a , b ] 次 //至少兩次{2, }
【|】修飾兩邊字串任意誰整體出現,/intelligent|diligent/
【^字元1】必須以字元1開始,/^xceee/必須以xceee為開始,寫在表示式最前面
【$字元2】必須以字元2結尾,/\Aaa.*wo$/必須以aa開始和wo為結束,.*表示任意
【\A和\Z】開始和結束,以上相同,但不可配合修正符【m】使用,只能表示最前與最後
【\b】單詞邊界(空格),/\bare\b/,匹配字串“ware are xxx”匹配到are單詞,
【\B】單詞邊界以外的部分
【()】改變優先順序,/t(r|x)ol/,可匹配trol或者txol
以小變大:/tel*/表示l可出現任意次=>/t(el)*/表示el可出現任意次
用於取出:/t(el)(.*)/如"xxwtelelllll"輸出telelllll el elllll
可在表示式中用\1或者$1直接取第一個值
4、 內容修正符:對定界符內容的修正,寫在定界符外右邊
【i】不區分大小寫,/teL/i可匹配tel、Tel、TEL 等
【m】換行後不示為不同行,預設將\n換行示為以上一行為同一行,/^aa/使用有區別
【A】同\A相同匹配開頭,以【m】無法同步使用
【s】修正表示式中【.】可匹配回車\n,如/a.*art/s匹配"I am \nsmart"
【x】忽略正則表示式內容裡所寫的空白間隔,去掉空字元而已
【U】取消開始和結束符以最大範圍取值,如"awobaisb"使用"/a.*b/"輸出awobaisb
使用/a.*b/U或/a.*?b/取消貪婪則會輸出:awob和aisb
5、 替換內容1:preg_replace($正則字串,“替換值”,$原字串);//返回替換後的字串
正則字串:/\Aaa.*wo$/ 如"aadongwo"
可在替換值中用\1或者$1直接取第一個值(dong)
6、 替換內容2:
7、 分割內容:preg_split($正則字串,$原字串);//以正則字串為分割符,返回陣列
正則字串如:"/[.,?na]/"表示可以以點、逗號、問好、字母n、字母a作為分隔符
8、 獲取匹配值:preg_match_all($正則字串,$原字串,$返回結果陣列);
//查詢無則返回失敗(false),成功則結果存在$返回結果陣列
//preg_match()獲取一次,引數相同
9、 獲取陣列匹配值:preg_grep($正則字串,$原字串陣列);//返回匹配上的新字串陣列