PHP是编写动态WEB页面开发常用的脚本语言,而正则表达式是PHP中很重要的一个部分,下面我们就PHP正则表达式和大家详细的谈谈吧。在ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器。
PHP正则表达式介绍:
1.中括号
<ol class="dp-xml"> <li class="alt"><span><span>[0-9]匹配0-9 </span></span></li> <li class=""><span>[a-z]匹配a-z小写字母 </span></li> <li class="alt"><span>[A-Z]匹配A-Z大写字母 </span></li> <li class=""><span>[a-zA-Z]匹配所有大小写字母 </span></li> <li class="alt"><span>可以使用ascii来制定更多 </span></li> </ol>
2.量词
<ol class="dp-xml"> <li class="alt"><span><span>p+匹配至少一个含p的字符串 </span></span></li> <li class=""><span>p*陪陪任何包含0个或多个p的字符串 </span></li> <li class="alt"><span>p?匹配任何包含0个或一个p的字符串 </span></li> <li class=""><span>p{2}匹配包含2个p的序列的字符串 </span></li> <li class="alt"><span>p{2,3}匹配任何包含2个或3个的字符串 </span></li> <li class=""><span>p$匹配任何以p结尾的字符串 </span></li> <li class="alt"><span>^p匹配任何以p开头的字符串 </span></li> <li class=""><span>[^a-zA-Z]匹配任何不包含a-zA-Z的字符串 </span></li> <li class="alt"><span>p.p匹配任何包含p、接下来是任何字符、再接下来有又是p的字符串 </span></li> <li class=""><span>^.{2}$匹配任何值包含2个字符的字符串 </span></li> <li class="alt"> <span></span><strong><font color="#006699"><span class="tag"><span class="tag-name">b</span><span class="tag">></span></span></font></strong><span>(.*)</span><strong><font color="#006699"><span class="tag"><span class="tag-name">b</span><span class="tag">></span></span></font></strong><span>匹配任何被</span><strong><font color="#006699"><span class="tag"><span class="tag-name">b</span><span class="tag">></span><span class="tag"><span class="tag">></span></span></span></font></strong><span>包围的字符串 </span> </li> <li class=""><span>p(hp)*匹配任何一个包含p,后面是多个或0个hp的字符串 </span></li> </ol>
3.预定义字符范围
<ol class="dp-xml"> <li class="alt"><span><span>[:alpha:]同[a-zA-Z] </span></span></li> <li class=""><span>[:alnum:]同[a-zA-Z0-9] </span></li> <li class="alt"><span>[:cntrl:]匹配控制字符,比如制表符,反斜杠,退格符 </span></li> <li class=""><span>[:digit:]同[0-9] </span></li> <li class="alt"><span>[:graph:]所有ASCII33~166范围内可以打印的字符 </span></li> <li class=""><span>[:lower:]同[a-z] </span></li> <li class="alt"><span>[:punct:]标点符号 </span></li> <li class=""><span>[:upper:]同[A-Z] </span></li> <li class="alt"><span>[:space:]空白字符,可以是空格、水平制表符、换行、换页、回车 </span></li> <li class=""><span>[:xdigit:]十六进制符同[a-fA-F0-9] </span></li> </ol>
4.ereg语句可以区分大小写来判断,下例
<ol class="dp-xml"><li class="alt"><span><span>if (ereg("([^a-z])","aaaaZaaaaaaa")) echo "不全是小写的!"; </span></span></li></ol>
ereg还可以返回一个数组 例如
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">url</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"http://www.xuandun.net"</font></span><span>; </span></span></li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">a</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">ereg</font></span><span>("^(http://www).([[:alnum:]]+).([[:alnum:]]+)",$url,$regs); </span> </li> <li class="alt"> <span>echo $regs[0],"</span><strong><font color="#006699"><span class="tag"><span class="tag-name">br</span><span class="tag">></span></span></font></strong><span>"; </span> </li> <li class=""> <span>echo $regs[1],"</span><strong><font color="#006699"><span class="tag"><span class="tag-name">br</span><span class="tag">></span></span></font></strong><span>"; </span> </li> <li class="alt"> <span>echo $regs[2],"</span><strong><font color="#006699"><span class="tag"><span class="tag-name">br</span><span class="tag">></span></span></font></strong><span>"; </span> </li> <li class=""> <span>echo $regs[3],"</span><strong><font color="#006699"><span class="tag"><span class="tag-name">br</span><span class="tag">></span></span></font></strong><span>"; </span> </li> </ol>
得到
<ol class="dp-xml"> <li class="alt"><span><span>http://www.xuandun.net </span></span></li> <li class=""><span>http://www </span></li> <li class="alt"><span>xuandun </span></li> <li class=""><span>net </span></li> </ol>