不管是在是php中,还是在javascript中,正则表达式都是作为一个十分重要的角色存在着,今天我们来学习php中正则表达式的使用。其实正则表达式最最重要的使用就是两个方面,一个验证用户的信息是不是符合要求,另外一个就是字符串的截取。
1.验证信息
在php中验证信息主要的是使用ereg和eregi,这两个函数的区别就是后面一个是不区分大小写的,其他的都是一样,他们接受两个参数,这两个参数都是字符串,但是第一个是正则表达式,第二个是需要验证的字符。
ereg(“([a-z])+”, $letters);它是返回匹配的字符的数,如果不匹配,就返回false,所以我们就能通过if语句来判断返回的结果,作为是不是符合要的信息。
比如:
$email=”pant_ingwen@126.com“;
if (ereg(“^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+”,$email)){
echo “您的 E-Mail 通过初步检查<br/>”;
}
2.截取字符串
php中正则表达式另外一个很重要的用处就是截取字符串,通常我们都是需要从一个字符串里面截取一些信息,比如一段文本里面找出一个邮箱地址等等的。这时候主要使用都php的preg_match_all函数,这个函数的使用和ereg的差不多,只是这个返回的结果是数组,也就是匹配之后的结果字符串,preg_match_all(“([0-9]+)”,”sdsdsdsd56565656dfdfdf”,$result);这样放回的结果就放在了$result里面了,但是我们要注意的这个是一个二维数组,我们获取里面数值需要使用$result[o][0]来获取。
preg_match_all(“([0-9]+)”,”sdsdsdsd56565656dfdfdf”,$result);
echo “提出出来的数字是:”.$result[0][0];//结果显示就是:提出出来的数字是:56565656
本文演示代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
//在php中a-z表示a到z的字母,A-Z表示A-Z的字母,0-9表示数字,^表示开始,$表示结束
//在php中的正则表达式的函数式
$number=123;
if(ereg("([0-9])+", $number)){
echo "这是一个数字<br/>";
}
$letters="asdfghjk";
if(ereg("([a-z])+", $letters)){
echo "这是一些字母<br/>";
}
$email="pant_ingwen@126.com";
if (ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+",$email)) {
echo "您的 E-Mail 通过初步检查<br/>";
}
$letters2="aaaaaaaaaaaaaaaZZZZZZZZZZZZZZ";
if(eregi("([a-z])+", $letters2)){
echo "这是不区分大小写的字符串<br/>";
}
//知道正则表达式的规则,我们就可以写出这些表达式
//比如QQ
$qq=980502568;
$qq2=0123;
if(ereg("[1-9][0-9]{4,10}", $qq2)){
echo "你的qq是正确的<br/>";
}else{
echo "你的qq号码不正确<br/>";
}
preg_match_all("([0-9]+)","sdsdsdsd56565656dfdfdf",$result);
echo "提出出来的数字是:".$result[0][0];
?>
</body>
</html>
|