代码改变世界

PHP学习之路六(php与正则表达式)

2012-12-01 15:04  Lves Li  阅读(176)  评论(0编辑  收藏  举报
<html>
	<head> 
		<title>正则表达式和样式匹配</title>
	</head>
	<body>
		<?php 
			$find="love";//定义要查找的变量
			$result=preg_match("/$find/","I love you,xiaohei!");//第一个参数为要查找
																//变量,第二个参数为查找字符串
			//查找 前后带空格的"you",返回false
			@$result1=preg_match("\byou\b/","I love you,xiaohei!");
			if ($result){
				echo "匹配成功!<br>";
			}else {
				echo "匹配失败!<br>";
			}			
			if ($result1){
				echo "\byou\b/"."匹配成功!<br>";
			}else {
				echo "\byou\b/"."匹配失败!<br>";
			}
		
		?>
		
	<?php 
	/*  ^元字符被称为行首端位。。匹配字符串起始找到的样式。
	 *  判断获奖名单("李兴乐 王长超 小黑")中是否有王长超,在判断,王长超,李兴乐是否为第一个
	 * */
	$string="李兴乐 王长超 小黑";
	$name1="王长超";
	$name2="李兴乐";
	if (ereg("王长超",$string)){//判断是否 有王长超
		echo "有王长超!<br>";
	}
	if(ereg("^李兴乐",$string)){//判断行首是否为李兴乐
		echo '李兴乐为第一个<br>';
	}
	 if(ereg("^王长超",$string)){
		echo "王长超为第一个<br>";
	}
	if(ereg("小黑$",$string)){  //判断行尾 是否为 小黑
		echo "小黑为最后一个<br>";
	}
	
	?>	
	<?php 
		//邮箱格式判断
		//元字符+ 用来匹配前面的子表达式 一次或多次..{2}表示匹配的次数喂两次。{2,4}重复 2-4次
		$myemail="lixingle123@qq.com";
		if (ereg("([0-9a-zA-Z]+)([@])([0-9a-zA-Z]+)([.])([0-9a-zA-Z]{2,4})",$myemail)){
			echo $myemail."格式正确<br>";
		}else {
			echo  $myemail."格式不正确,请重新输入!<br>";
		}
	?>
	<?php 
	//匹配字符格式
    //判断日期格式是否为 YYYY-MM-DD格式
	   $mydate="2012-11-26";
	   if (ereg("([0-9]{4})(-)([0-9]{2})(-)([0-9]{2})",$mydate,$regs)){	   	
	   	echo $regs[1]."年$regs[3]月$regs[5]日<br>";   
	   }else {
	   	echo "时间格式错误!<br>";
	   }
	   
	   
	   
	   
	?>
	<?php 
	/*PHP支持Perl样式的正则表达式,
	 * 样式匹配函数:
	 * int preg_match(string $pattern,string $subject[,array $matches[,int flages]]);
	 * int preg_match_all(string $pattern,string $subject[,array $matches[,int flages]]);
	 * preg_match()和preg_match_all()用法相似,但后者是匹配整个字符串,而不是执照第一个,并且返回找到的样式数量
	 * 
	 * */
	
		$string ="I am studing PHP,PHP is so easy.PHP";
		$result=preg_match_all("/PHP/i",$string,$matches,PREG_OFFSET_CAPTURE);
	
		if ($result==true){
			echo "$result PHP was found.<br>";
			print_r($matches);
			echo "<br>";				
		}else {
			echo "PHP was not found.<br>";
			print_r($matches);
			echo "<br>";
		}
	?>
	
	
	</body>

</html>