浅析Perl正则表达式在PHP的实现

photoed 2009-09-16

Perl正则表达式在PHP的实现达成,我们要使用PCRE相关的正则表达式函数,那么具体的都有什么函数呢?这里我们向你介绍4个,希望对你有所帮助。

Perl正则表达式在PHP的实现所使用的函数介绍:

1、preg_match :

函数格式:

int preg_match(string pattern, string subject, array [matches]);  

这个函数会在string中使用pattern表达式来匹配,如果给定了[regs],就会将string记录到[regs][0]中,[regs][1]代表使用括号"()"记录下来的第一个字符串,[regs][2]代表记录下来的第二个字符串,以此类推。preg如果在string中找到了匹配的pattern,就会返回"true",否则返回"false"。

2、preg_replace :

函数格式:

mixed preg_replace(mixed pattern, mixed replacement, mixed subject);  

这个函数会使用将string中符合表达式pattern的字符串全部替换为表达式replacement。如果replacement中需要包含pattern的部分字符,则可以使用"()"来记录,在replacement中只是需要用"\\1"来读取。

3、preg_split :

函数格式:

array preg_split(string pattern, string subject, int [limit]);  

这个函数和函数split一样,区别仅在与split可以使用简单正则表达式来分割匹配的字符串,而preg_split使用完全的Perl兼容正则表达式。第三个参数limit代表允许返回多少个符合条件的值。

4、preg_grep :

函数格式:

array preg_grep(string patern , array input);  

这个函数和preg_match功能基本上,不过preg_grep可以将给定的数组input中的所有元素匹配,返回一个新的数组。

下面举一个例子,比如我们要检查Email地址的格式是否正确:

Perl正则表达式在PHP的实现实例:

<?php   



function emailIsRight($email) {   




if (preg_match("^[_\.0-9a-z  




0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) {   




return 1;   



}   



return 0;   



}   



if(emailIsRight(\'[email protected]\')) echo \'正确<br>\';   




if(!emailIsRight(\'y10k@fffff\')) echo \'不正确<br>\';   



?>  

相关推荐