本文是根據慕課網Jason老師的課程進行的PHP面試知識點總結和升華,如有侵權請聯系我進行洗掉,email:[email protected]
在面試中,考官往往喜歡基礎扎實的面試者,而正則運算式相關的考點,往往是大家容易忽視的一個點,今天冷月就來幫各位小伙伴們梳理一下,在面試中正則運算式相關的注意點,
回顧真題
至少寫出一種驗證139開頭的11位手機號碼的正則運算式
答案:
/^139\d{8}$/
考點分析
很明顯,面試官主要想考察大家對于正則運算式組成及撰寫方法的了解程度,繼而衍生出正則運算式的作用:
1.分割
分隔符(定界符),主要是正斜線(/),表示一個正則運算式的開始和結束
2.查找
通用原子
\d :十進制0-9
\D :除了十進制0-9
\w:數字、字母、下劃線
\W:除了數字、字母、下劃線
\s:空白符(換行、空格、回車)
\S:除了空白符(換行、空格、回車)
元字符
模式修正符
U:懶惰模式
u:貪婪模式
i:忽略英文字母大小寫
x:忽略空白
s:讓元字符“.”匹配包括換行符在內所有字符
e:配合函式 preg_replace() 使用,可以把匹配來的字串當作正則運算式執行
3.匹配
preg_match() //匹配一個
preg_match_all()// 匹配所有
4.替換
preg_replace()
preg_filler()
后向參考:
在后面的運算式中,參考前面某個分組所匹配到的內容
<?php
/**
* Created by 冷月小白.
* 微信公眾號: 學長冷月
*/
$str = '<b>abc</b>';
$pattern = '/<b>(.*)<\/b>/'; //一定要用括號
$res = preg_replace($pattern,'\1',$str); //將第一個匹配到的資料放入陣列
var_dump($res); //string(3) "abc"
貪婪模式
<?php
/**
* Created by 冷月小白.
* 微信公眾號: 學長冷月
*/
$str = '<b>abc</b><b>bcd</b>';
$pattern = '/<b>(.*?)<\/b>/u'; //貪婪模式
$res = preg_replace($pattern,'\1',$str); //將第一個匹配到的資料放入陣列
var_dump($res); //string(3) "abc"
中文匹配
UTF-8漢字編碼范圍:
0x4e00-0x9fa5
一網打盡
請寫出一個正則運算式,取出頁面中所有的img標簽中的src值
答案:
<?php
/**
* Created by 冷月小白.
* 微信公眾號: 學長冷月
*/
$str = '<img alt="" id="" src=https://www.cnblogs.com/guoyugy/p/"xxx.jpg" />';
$pattern = '/<img.*?src=https://www.cnblogs.com/guoyugy/p/"(.*?)".*?/?>/i';
preg_match($pattern,$str,$a);
var_dump($a);//string(7) "xxx.jpg"
如果這篇博文有幫助到您,可以幫冷月點一個贊或者加一個關注哦!
歡迎關注我的公眾號:學長冷月,獲得獨家整理的學習資源和日常干貨推送,
如果您對我的專題內容感興趣,也可以關注我的博客:guoyu7.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/80836.html
標籤:PHP
