查找字符串是正则表达式的主要应用。在PHP中,可以使用的并且用于匹配POSIX风格正则表达式的两个函数是ereg()函数和eregi()函数
ereg()函数和eregi()函数
函数语法格式如下:
int ereg(string pattern,string search,array[matches]);
函数功能:该函数搜索字符串search,在pattern中寻找与正则表达式相匹配的字符串。如果发现了与pattern的子表达式相匹配的字符串,这些字符串将会储存在数组matches中,每个数组元素对应一个子表达式。
函数eregi()函数除了不区分大小写外,其他功能与ereg()函数一样。
实例展示用ereg()函数验证变量是否合法:
<?php
header("content-type:text/html;charset=utf-8");
$ereg = '^[$][[:alpha:]__][[:alnum:]]*';
ereg($ereg,'$_name',$register);
var_dump($register);
?>
注意:在新版本PHP中ereg已经被弃用,取而代之的是preg_match().
ereg_replace()和eregi_replace()
函数语法格式如下:
string ereg_replace/ereg_replace(string pattern , string replacement , string string)
函数功能:在字符换string中匹配表达式pattern,如果匹配成功,则使用replacement来替换匹配字串,并返回替换后的string。如果未在string中找到匹配项,则string将原样返回。eregi_replace()不区分大小写。
实例展示将字符串所有非大写的tm都换成大写的TM:
<?php
header("content-type:text/html;charset=utf-8");
$ereg = 'tm';
$str = 'hello ,tm,Tm,tM';
$rep_str = eregi_replace($ereg,'TM',$str);
echo $rep_str;
注意:在新版本中,eregi_replace()被preg_replace()代替。