正则表达式是程序开发中的一个重要元素,它提供了用于描述或匹配文本的字符串,例如特定的字符、单词或计算。但在某些情况下,使用正则表达式来验证字符串是复杂且耗时的。本文向您介绍10种常见且实用的PHP正则表达式编写方法。希望对您的工作有所帮助。验证电子邮件地址这是用于验证电子邮件的正则表达式。但这不是一个高效、完美的解决方案。这里不推荐使用。$email="test@ansoncheung.tk";if(preg_match('/^1[a-zA-Z0-9_]+(.+)@+(.+).{2,4}$/',$email)){echo"你的邮箱没问题。";}else{echo"邮箱地址格式错误";}为了更有效地验证邮箱地址,推荐使用filer_var。if(filter_var('test+email@ansoncheung',FILTER_VALIDATE_EMAIL)){echo"你的邮箱没问题。";}else{echo"邮箱地址格式错误。";}VerifyUsername这是一个验证用户名的例子,包括字母,数字(A-Z、a-z、0-9)、下划线和最少5个字符,最多20个字符。同时可以根据需要对最小值和最大值进行合理修改。$username="user_name12";if(preg_match('/^[a-zd_]{5,20}$/i',$username)){echo"你的用户名没问题。";}else{echo"错误的用户名格式。”;}验证电话号码这是验证美国电话号码的示例。$phone="(021)423-2323";if(preg_match('/(?d{3})?[-s.]?d{3}[-s.]d{4}/x',$phone)){echo"你的电话号码没问题。";}else{echo"错误的电话号码。";}验证IP地址这是一个验证IPv4地址的例子。$IP="198.168.1.78";if(preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|20-4|25[0-5])){3}([1-9]?[0-9]|1[0-9]{2}|20-4|25[0-5])$/',$IP)){echo“您的IP地址没问题。”;}else{echo“错误的IP地址。”;}验证邮政编码这是验证邮政编码的示例。$zipcode="12345-5434";if(preg_match("/^([0-9]{5})(-[0-9]{4})?$/i",$zipcode)){echo"你的邮政编码没问题。";}else{echo"WrongZipcode.";}VerifySSN(SocialSecurityNumber)这是一个验证美国SSN的例子。$ssn="333-23-2329";if(preg_match('/^[d]{3}-[d]{2}-[d]{4}$/',$ssn)){echo"你的SSN没问题。";}else{echo"WrongSSN.";}验证信用卡号$cc="378282246310005";if(preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|51-5{14}|6011[0-9]{12}|3(?:0[0-5]|68)[0-9]{11}|347{13})$/',$cc)){echo"您的信用卡号没问题。";}else{echo"错误的信用卡号。";}验证域名$url="http://ansoncheung.tk/";if(preg_match('/^(http|https|ftp)://(A-Z0-9(?:.A-Z0-9)+):?(d+)?/?/i',$url)){echo"Yoururlisok.";}else{echo"Wrongurl.";}从特定的URL中提取域名$url="http://ansoncheung.tk/articles";preg_match('@^(?:http://)?(2+)@i',$url,$matches);$host=$matches[1];回声$主机;高亮文本中的关键字$text="示例来自AnsonCheung.tk,正则表达式在网络编程中已经流行起来。现在我们学习正则表达式。根据维基百科,正则表达式(缩写为regex或regexp,复数形式为regexes,regexps,或regexen)是用可以解释的正式语言编写的aregularexpressionprocessor";$text=preg_replace("/b(regex)b/i",'1',$text);echo$text;正则表达式对开发人员来说是一个非常有用的功能,它提供了搜索、匹配、替换其他格式的句子,单词,或者字符串,这篇文章主要介绍15个超实用的php正则表达式,需要的朋友可以参考一下,在这篇文章中,我写了15个超级好用的正则表达式,每个web开发者都应该在他们的工具包中。验证域名验证字符串是否为有效域名$url="http://komunitasweb.com/";如果(preg_match('/^(http|https|ftp)://(A-Z0-9(?:.A-Z0-9)+):?(d+)?/?/i',$url)){echo"你的url没问题。";}else{echo"错误的网址。";}fromastring这是一个非常有用的方法,可以匹配字符串中的一个单词并高亮它,非常有效的搜索结果,正则表达式(缩写为regex或regexp,复数形式为regexes、regexps或regexen)是用可以由正则表达式处理器解释的正式语言编写的”;$text=preg_replace("/b(regex)b/i",'1',$text);回声$文本;就像我刚才说的那样在你的WordPress博客中突出显示查询结果,上面的代码可以很容易地搜索结果,这里有一个更好的方法来执行搜索在WordPress博客上打开你的文件search.php,然后找到方法the_title()并使用以下代码将其替换为echo$title;现在,就在修改后的行之前,添加以下代码:\0',$title);?>保存search.php文件并打开样式.css。添加以下行:strong.search-excerpt{background:yellow;从HTML文档中获取所有图片你可以很容易地构建一个图片下载机器人$images=array();preg_match_all('/(img|src)=("|')3+/i',$data,$media);unset($data);$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]);foreach($dataas$url){$info=pathinfo($url);if(isset($info['extension'])){if(($info['extension']=='jpg')||($info['extension']=='jpeg')||($info['extension']=='gif')||($info['extension']=='png'))array_push($images,$url);}}删除重复的字母经常重复输入字母?这个表达式很合适$text=preg_replace("/s(w+s)1/i","$1",$text);删除重复标点的功能同上,只是针对标点,白白重复的逗号$text=preg_replace("/.+/i",".",$text);匹配一个XML或HTML标签这个简单的函数有两个参数:第一个是标签,第二个是一个包含XML或HTML的变量,再一次,这确实是强大的功能get_tag($tag,$xml){$tag=preg_quote($tag);preg_match_all('{<'.$tag.'4>(.?)'.$tag.'>.'}',$xml,$matches,PREG_PATTERN_ORDER);返回$matches[1];}matchhasXMLorHTMLtagswithattributevalues这个功能和上面的很相似,但是它允许你匹配里面有属性值的标签,比如你可以很容易的匹配函数get_tag($attr,$value,$xml,$tag=null){if(is_null($tag))$tag='w+';否则$tag=preg_quote($tag);$attr=preg_quote($attr);$value=preg_quote($value);$tag_regex="/<(".$tag.")4$attrs=s*"。"(['\"])$value\\2[^>]*>(.*?)<\/\\1>/"preg_match_all($tag_regex,$xml,$matches,PREG_PATTERN_ORDER);返回$matches[3];}匹配十六进制颜色值Web开发人员的另一个有趣的工具,它允许您匹配和验证十六进制颜色值。$string="#555555";if(preg_match('/^#(?:(?:[a-fd]{3}){1,2})$/i',$string)){echo"example6successful.";}查找页面标题这段代码方便查找打印和的网页$fp=fopen("http://www.catswhocode.com/blog","r");while(!feof($fp)){$page.=fgets($fp,4096);}$titre=eregi("(.*)",$page,$regs);回声$regs[1];fclose($fp);解析Apache日志大多数网站使用的都是大名鼎鼎的Apache服务器,如果你的也是一样,用PHP正则表达式解析Apache服务器日志怎么样?//日志:Apache网络服务器//仅成功命中HTML文件。用于计算页面浏览量。'^((?#客户端IP或域名)S+)s+((?#基本认证)S+s+S+)s+[((?#日期和时间)[^]]+)]s+"(?:GET|POST|HEAD)((?#file)/5+?.html?)??((?#parameters)5+)?HTTP/[0-9.]+"s+(?#statuscode)200s+((?#bytestransferred)[-0-9]+)s+"((?#referrer)6)"s+"((?#useragent)6)"$'//Logs:Apachewebserver//404只有错误'^((?#clientIPordomainname)S+)s+((?#basicauthentication)S+s+S+)s+[((?#dateandtime)[^]]+)]s+"(?:GET|POST|HEAD)((?#file)5+)??((?#parameters)5+)?HTTP/[0-9.]+"s+(?#statuscode)404s+((?#bytestransferred)[-0-9]+)s+"((?#referrer)6)"s+"((?#useragent)6)"$'使用智能引号代替双引号如果你是印刷爱好者,你会喜欢这个允许智能引号而不是双引号的正则表达式,这个正则表达式被WordPress在Usepreg_replace('B"b(7+)b"B','?1?',$text)上使用它的内容;检查密码的复杂性此正则表达式将检查输入是否包含6个或更多字母、数字、下划线和连字符。输入必须至少包含一个大写字母字母,一个小写字母和一个数字'A(?=[-_a-zA-Z0-9]?[A-Z])(?=[-_a-zA-Z0-9]?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z'WordPress:使用正则表达式获取帖子中的图片。我知道很多人使用WORDPRESS或者,您可能喜欢并愿意使用从帖子内容中检索到的那些图像代码要在您的博客中使用此代码,只需将下面的代码复制到您的文件之一post_content;$szSearchPattern='~~';//运行preg_match_all抓取所有图像并将结果保存在$aPics中preg_match_all($szSearchPattern,$szPostContent,$aPics);//检查我们是否至少有1张图像$iNumberOfPics=count($aPics[0]);if($iNumberOfPics>0){//现在在这里你可以对图像做任何你需要做的事情//对于这个例子,图像只显示为($i=0;$i<$iNumberOfPics;$i++){echo$aPics[0][$i];};};结束;万一;?>自动生成笑脸WordPress使用的另一种方法,此代码允许您自动用笑脸符号替换图像$texte='Atextwithasmiley';echostr_replace(':-)','',$texte);去掉图片的链接jobbole其他字符sohu
';//echopreg_replace("/()()()/",'$2',$str);echopreg_replace("/()()()/",'2',$str);?>0-9?/?"'>?>??"?"?"x84x93x94rn?