51CTO下载-正则表达式实例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

//截取中间字符串的方法preg_match('/(?:ello)(.*)/','hellobiafra',$match);print_r($match);Array([0]=ellobiafra[1]=biafra)preg_match('/(ello)(.*)/','hellobiafra',$match);print_r($match);Array([0]=ellobiafra[1]=ello[2]=biafra)//取得QQ号functiongetQQ($text){if(ereg(([0-9]{5,9}),$text,$regs)){return$regs[1];}else{echoQQ号无效!;}}//分析img的方法:?php$content='asdfadfasdfsdfimgsrc=../../img/200703082sdd1PGmffX.jpgasdfasdfasdfimgsrc=../../img/2007030asdf23211PGmffX.jpgimgsrc=../../img/2007030822asdfGmffX.jpgasdfasdfasdfasdfasdf';$search=/imgsrc=(.+?)/is;$re=array();$match=preg_match_all($search,$content,$re);$count=count($re[0]);for($i=0;$i=$count;$i++){echo$re[0][$i];}//分析域名的正则表达式$referer=preg_replace(/https?:\/\/([^\/]+).*/i,\\1,$referer);$referer=str_replace();//ubb标签分析的正则表达式?php$content=;$content=eregi_replace(\\[img\\]([^\\[]*)\\[/img\\],\\1是个笨蛋!,$content);echo$content;?//QQ论坛偷图片的方法?$pathOrUrl='==_blank';preg_match('/(?:shtml\?url=)(.*)(\target=_blank$)/',$pathOrUrl,$match);echo$match[1];?//分析链接id...?$str=tdfeicemc.php?id=fdsfds&str=33333dd/td;preg_match(/str=(.+)\/td/isU,$str,$out);echo$out[1];?匹配中文字符的正则表达式:[\u4e00-\u9fa5]匹配双字节字符(包括汉字在内):[^\x00-\xff]应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){returnthis.replace([^\x00-\xff]/g,aa).length;}匹配空行的正则表达式:\n[\s|]*\r匹配HTML标记的正则表达式:/(.*).*\/|(.*)\//匹配首尾空格的正则表达式:(^\s*)|(\s*$)应用:JavaScript中没有像VBscript那样的trim函数,我们就可以利用这个表达式来实现,如下:String.prototype.trim=function(){returnthis.replace(/(^\s*)|(\s*$)/g,);}利用正则表达式分解和转换IP地址:下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:functionIP2V(ip){re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g//匹配IP地址的正则表达式if(re.test(ip)){returnRegExp.*Math.pow(255,3))+RegExp.*Math.pow(255,2))+RegExp.*255+RegExp.*1}else{thrownewError(NotavalidIPaddress!)}}不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:varip=10.100.20.168ip=ip.split(.)alert(IP值是:+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?利用正则表达式去除字串中重复的字符的算法程序:vars=abacabefgeeiivars1=s.replace(/(.).*/g,)varre=newRegExp([+s1+],g)vars2=s.replace(re,)alert(s1+s2)//结果为:abcefgi用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1s==s.replace(/(.*\/)([^\.]+).*/ig,)alert(s)利用正则表达式限制网页表单里的文本框输入内容:用正则表达式限制只能输入中文:用正则表达式限制只能输入全角字符:用正则表达式限制只能输入数字:用正则表达式限制只能输入数字和英文:在PHP中正则表达式用于复杂字符串的处理。所支持的正则表达式如下:ereg()ereg_replace()eregi()eregi_replace()split()(1)ereg,eregi这是正则表达式匹配函数,前者是大小写有关匹配,后者则是无关的.用法:ereg(正则表达式,字符串,[匹配部分数组名]);PHP3.0中的正则表达式大体类似于grep中用的.(2)ereg_replace,eregi_replace这些是替换函数.用法:ereg_replace(正则表达式,替换串,原字符串);字符串处理函数中有一个strtr,是翻译函数,类似于Perl中的tr/.../.../,用法:strtr(字符串,从,到);例如:strtr(aaabb,ab,cd)返回cccdd.(3)split与explode函数有些类似,但这次可以在匹配某正规表达式的地方分割字符串.用法:split(正规表达式,字符串,[取出前多少项]);这些函数都使用正则字符串做为第一个参数。PHP使用Posix1003.2标准所定义的扩展正则字符串。要查考Posix正则表达式的完整描述请看PHP软件包中regex目录下的man页。Regularexpressionexamples:ereg(abc,$string);/*Returnstrueifabcisfoundanywherein$string.*/ereg(^abc,$string);/*Returnstrueifabcisfoundatthebeginningof$string.*/ereg(abc$,$string);/*Returnstrueifabcisfoundattheendof$string.*/eregi((ozilla.[23]|MSIE.3),$HTTP_USER_AGENT);/*ReturnstrueifclientbrowserisNetscape2,3orMSIE3.*/ereg(([[:alnum:]]+)([[:alnum:]]+)([[:alnum:]]+),$string,$regs);/*Placesthreespaceseparatedwordsinto$regs[1],$regs[2]and$regs[3].*/ereg_replace(^,,$string);/*Putatagatthebeginningof$string.*/ereg_replace($,,$string);/*Putatagattheendof$string.*/ereg_replace(n,,$string);/*Getridofanycarriagereturncharactersin$string.*/PHP的POSIX正则表达式实例讲解?php//Title:PHP的POSIX正则表达式实例讲解//Author:Stangly.Wrong//FunctionmyEreg($p,$s,$preg)//可以通过对$preg设置决定是否采用POSIX还是兼容perl的正则匹配//本文所采用的ereg()函数对大小定敏感如果不想去区分大小写,//则可以使用eregi()函数去替代ereg()函数//如果匹配成功,则输出Resultis:True//否则输出Resultis:False$title_prefix=''''例'''';$call_num=1;$title_suffix=''''br/'''';functionmyEreg($p,$s,$preg=FALSE){global$call_num,$title_prefix,$title_suffix;echo$title_prefix.$call_num.$title_suffix;$call_num++;$function_name=($preg)?''''preg_match'''':''''ereg'''';echo\$p=\$p\br/;echo\$s=\$s\br/;echoCallfunctionis:$function_name(\$p,\$s)br/;if($function_name($p,$s))echoResultis:Truebr/br/\r\n;elseechoResultis:Falsebr/br/\r\n;returnTrue;}//-----------------------------------------------------------------//学习开始-------------------------------------------------------//-----------------------------------------------------------------//最简单的一种匹配模式//从$s中寻找$p字符串//例1匹配失败$p出现在$s中$p=''''jear'''';$s=''''Ilovejearforevery!'''';myEreg($p,$s);//-----------------------------------------------------------------//匹配特殊字符比如$.^等,d_无育|]E[aC)%c?.Eug,2C提$国$0x0AwXoyIixp育E垠%属于正则表达式的相关字符//使用对这些字符进行转义//例2本例匹配将成功,如果剔除将失败$p=''''\$100'''';$s=''''Iwantlendjear$100.'''';myEreg($p,$s);//此处将直接使用$去匹配//例3匹配失败$p=''''$100'''';myEreg($p,$s);//-----------------------------------------------------------------//使用^匹配//^指出必须与字符串的开头字符串匹配//例4本例匹配失败$p虽然出现在$s中,但不是

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功