正则表达式的作用:分割、查找、匹配和替换字符串。
分隔符:正斜线(/)、hash符号(#)以及取反符号(~)。
通用原子:\d \D \s \S \w \W
元字符:. * + ? ^ $ () [] [^] [-] {n} {n,} {n,m} |
模式修正符:i m e s U x A D u
此部分内容参考 《正则表达式》
解题方法:
先写出一个匹配的字符串
自左向右的顺序使用正则表达式的原子和元字符进行拼接
最终加入模式修正符
真题测试:
<?php $str = '13622815676'; $pattern = '/^\d{11}$/'; preg_match($pattern, $str, $match); var_dump($match); $str1 = '<p>abc</p><p>defgg</p>'; $pattern1 = '/<p>(.*?)<\/p>/'; preg_match_all($pattern1, $str1, $match1); var_dump($match1); $str2 = '<IMG alt="图片标题" class="reponsive" src="images/abc.jpg"/>'; $pattern2 = '/<img.*?src="(.*?)"\/?>/i'; preg_match($pattern2, $str2, $match2); var_dump($match2); $match3 = preg_replace($pattern2, 'xiaofan', $str2); var_dump($match3); echo '<hr>'; $str3 = 'http://www.baidu.com/category/123.html'; $pattern3 = '/^http:\/\/.*/'; preg_match($pattern3, $str3, $match4); var_dump($match4); $str4 = 'abc7894-6@qq.com.cn'; $pattern4 = '/^[a-zA-Z1-9_-]+@[a-zA-Z1-9_-]+(?:\.[a-zA-Z]+){1,2}$/i'; preg_match($pattern4, $str4, $match5); var_dump($match5);
参考内容: