10个实用的PHP正则表达式汇总
本文实例讲述了10个实用的PHP正则表达式汇总,分享给大家供大家参考。具体如下:
正则表达式是程序开发中一个重要的元素,它提供用来描述或匹配文本的字符串,如特定的字符、词或算式等。但在某些情况下,用正则表达式去验证一个字符串比较复杂和费时。本文为你介绍10种常见的实用PHP正则表达式的写法,希望对你的工作有所帮助。
1.验证E-mail地址
这是一个用于验证电子邮件的正则表达式。但它并不是高效、完美的解决方案。在此不推荐使用。
$email="test@ansoncheung.tk";
if(preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)){
echo"Youremailisok.";
}else{
echo"Wrongemailaddressformat";
}为了更加有效验证电子邮件地址,推荐使用filer_var。
if(filter_var('test+email@ansoncheung',FILTER_VALIDATE_EMAIL)){
echo"Youremailisok.";
}else{
echo"Wrongemailaddressformat.";
}
2.验证用户名
这是一个用于验证用户名的实例,其中包括字母、数字(A-Z,a-z,0-9)、下划线以及最低5个字符,最大20个字符。同时,也可以根据需要,对最小值和最大值做合理的修改。
$username="user_name12";
if(preg_match('/^[a-z\d_]{5,20}$/i',$username)){
echo"Yourusernameisok.";
}else{
echo"Wrongusernameformat.";
}
3.验证电话号码
这是一个验证美国电话号码的实例。
$phone="(021)423-2323";
if(preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x',$phone)){
echo"Yourphonenumberisok.";
}else{
echo"Wrongphonenumber.";
}
4.验证IP地址
这是一个用来验证IPv4地址的实例。
$IP="198.168.1.78";
if(preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)){
echo"YourIPaddressisok.";
}else{
echo"WrongIPaddress.";
}
5.验证邮政编码
这是一个用来验证邮政编码的实例。
$zipcode="12345-5434";
if(preg_match("/^([0-9]{5})(-[0-9]{4})?$/i",$zipcode)){
echo"YourZipcodeisok.";
}else{
echo"WrongZipcode.";
}
6.验证SSN(社会保险号)
这是一个验证美国SSN的实例。
$ssn="333-23-2329";
if(preg_match('/^[\d]{3}-[\d]{2}-[\d]{4}$/',$ssn)){
echo"YourSSNisok.";
}else{
echo"WrongSSN.";
}
7.验证信用卡号
$cc="378282246310005";
if(preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/',$cc)){
echo"Yourcreditcardnumberisok.";
}else{
echo"Wrongcreditcardnumber.";
}
8.验证域名
$url="http://ansoncheung.tk/";
if(preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i',$url)){
echo"Yoururlisok.";
}else{
echo"Wrongurl.";
}
9.从特定URL中提取域名
$url="http://ansoncheung.tk/articles";
preg_match('@^(?:http://)?([^/]+)@i',$url,$matches);
$host=$matches[1];
echo$host;
10.将文中关键词高亮显示
$text="SamplesentencefromAnsonCheung.tk,regularexpressionhasbecomepopularinwebprogramming.Nowwelearnregex.Accordingtowikipedia,Regularexpressions(abbreviatedasregexorregexp,withpluralformsregexes,regexps,orregexen)arewritteninaformallanguagethatcanbeinterpretedbyaregularexpressionprocessor";
$text=preg_replace("/\b(regex)\b/i",'<spanstyle="background:#5fc9f6">\1</span>',$text);
echo$text;
希望本文所述对大家的PHP程序设计有所帮助。