PHP正则表达式考察点
Posted L1230205
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP正则表达式考察点相关的知识,希望对你有一定的参考价值。
正则表达式的作用 分隔、查找、匹配、替换字符串 正则表达式的组成部分 分隔符 "/" 、 "#" 、 "~" 通用原子 d : 十进制的0-9 D : 对d取反:除了0-9 w : 数字、字母、下画线 W : 除了数字、字母、下画线 s : 空格、换行符、换页符、回车符、字表符 S : 除了空格、换行符、换页符、回车符、字表符 常用原子符 . : 除了换行符之外的任意字符 * : 匹配前面内容出现0次、1次或多次 ? : 匹配前面内容出现0次或1次 ^ : 开头 dollar符 : 结尾 + : 匹配前面内容出现1次或多次 {n} : 出现n次 {n,} :出现大于等于n次 {n,m} : 出现大于等于n次 小于等于m次 [] : 集合,匹配中括号里面的[abc]则是匹配a 或 b 或 c () : 后向引用或当作整体 [^] : 取反[^abc]除了a 、除了b、 除了c | : 或者 [-] : 表示范围 模式修正符 i : 不区分大小写 m : 多文本模式 s : 单行模式 U : 取消贪婪模式 x : 忽略模式中的空白符 A : 必须以该模式开头 D : 如果这个修饰符被设置, 模式中的元字符美元符号仅仅匹配目标字符串的末尾. 如果这个修饰符 没有设置, 当字符串以一个换行符结尾时, 美元符号还会匹配该换行符(但不会匹配之前的任何换行符). 如果设置了修饰符m, 这个修饰符被忽略 u : 进行utf-8匹配 后向引用 $str = ‘<b>abc</b>‘; $pattern = ‘/<b>(.*)</b>/‘; preg_replace($pattern,‘\1‘,$str);//这里1代表的就是括号里匹配上的内容,也就是abc 贪婪模式 $str = ‘<b>abc</b><b>bcd</b>‘;//匹配每一不b标签 $pattern = ‘/<b>(.*?)</b>/‘;//.*存在贪婪模式,会一直匹配到最后,加上问号后 取消贪婪模式,匹配一个之后再进行下一个匹配 preg_replace($pattern,‘\1‘,$str); //使用以下方法也可以取消贪婪模式 $pattern = ‘/<b>(.*)</b>/U‘; 正则表达式PCRE函数 preg_filter — 执行一个正则表达式搜索和替换 preg_grep — 返回匹配模式的数组条目 preg_last_error — 返回最后一个PCRE正则执行产生的错误代码 preg_match_all — 执行一个全局正则表达式匹配 preg_match — 执行匹配正则表达式 preg_quote — 转义正则表达式字符 preg_replace_callback_array — Perform a regular expression search and replace using callbacks preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换 preg_replace — 执行一个正则表达式的搜索和替换 preg_split — 通过一个正则表达式分隔字符串 例子 写出一个正则表达式,取出页面中所有img标签中的src值 $str = ‘<img alt="xxx" src="aaa.jpg" />‘; $pattern = ‘/<img.*?src=["‘].*?["‘].*?/?>/‘; /** * 分析 * img的标签特性:有<img开头,中间可能有其他属性:所以有<img.*? * src标签:src=["‘].*?["‘] 可能是以单引号或双引号 * 后面可能还有别的属性:.*? * 以/> 或 >结尾: /?> * 最终拼接成:<img.*?src=["‘].*?["‘].*?/?> **/
以上是关于PHP正则表达式考察点的主要内容,如果未能解决你的问题,请参考以下文章
360大牛全面解读PHP面试视频教程 php面试技巧教程 共10章