php基础知识-正则表达式考点
在面试中,考官往往喜欢基础扎实的面试者,而正则表达式相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中正则表达式相关的注意点。
01
回顾真题
至少写出一种验证139开头的11位手机号码的正则表达式
答案: /^139\d{8}$/
02
考点分析
很明显,面试官主要想考察大家对于正则表达式组成及编写方法的了解程度。继而衍生出正则表达式的作用:
后向引用:在后面的表达式中,引用前面某个分组所匹配到的内容
<?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
03
一网打尽
在学习了本博文之后,冷月来测试一下大家对于知识的掌握程度。请看下面这道题:
请写出一个正则表达式,取出页面中所有的img标签中的src值
答案:
<?php /** * Created by 冷月小白. * 微信公众号: 学长冷月 */ $str = '<img alt="" id="" src="xxx.jpg" />'; $pattern = '/<img.*?src="(.*?)".*?\/?>/i'; preg_match($pattern,$str,$a); var_dump($a);//string(7) "xxx.jpg"