4.7 用正则表达式查找子字符串

查找子字符串是正则表达式的主要应用。在PHP中,可以使用的并且用于匹配POSIX风格正则表达式的两个函数是ereg()和eregi()。ereg()函数原型如下所示:


int ereg(string pattern,string search,array[matches]);


该函数搜索字符串search,在pattern中寻找与正则表达式相匹配的字符串。如果发现了与pattern的子表达式相匹配的字符串,这些字符串将会存储在数组matches中,每个数组元素对应一个子表达式。

函数eregi()除了不区分大小写外,其他功能与ereg()一样。

可以使用如下所示的代码对智能表单例子进行修改:


if(!eregi('^[a-zA-Z0-9_-.]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$',$email)){

echo"<p>That is not a valid email address.</p>".

<p>Please return to the previous page and try again.</p>";

exit;

}

$toaddress="feedback@example.com";//the default value

if(eregi("shop|customer service|retail",$feedback))

$toaddress="retail@example.com";

}else if(eregi("deliver|fulfill",$feedback)){

$toaddress="fulfillment@example.com";

}else if(eregi("bill|account",$feedback)){

$toaddress="accounts@example.com";

}

if(eregi("bigcustomer.com",$email)){

$toaddress="bob@example.com";

}