15.3.2 替换匹配字符串的函数
替换匹配字符串的正则表达式函数有两个:一个是函数ereg_replace(),另一个是函数eregi_replace()。它们之间的区别是,是否忽略匹配字母的大小写。下面分别加以介绍,函数ereg_replace()的语法如下所示。
string ereg_replace(string$pattern,string
$replacement,string$string)
该函数在在参数$string中扫描与参数$pattern匹配的部分,并将其用参数$replacement替换。该函数返回替换后的字符串。如果在参数$string中未找到匹配正则表达式的项,则参数$string将原样返回。注意,该函数在匹配字符串时,是区分大小写的。代码15-3演示了该函数的用法。
代码15-3 在程序中使用函数ereg_replace()替换匹配的字符串15-3.php
01 <?php
02 $str="1fish2fish3fish4fish5fish";//定义字符串变量
03 echo"<b>替换前字符串为:</b><br/>";
04 echo$str;
05 echo"<br/>";
06 echo"<br/>";
07
08 $str_rpc=ereg_replace("[0-9]","",$str);//替换匹配的字符串
09 echo"<b>替换后字符串为:</b><br/>";
10 echo$str_rpc;
11 ?>
【代码解析】这段代码首先定义一个字符串'1fish2fish3fish4fish5fish',然后将其中的数字都替换为空格。第8行在调用函数ereg_replace()时,传入正则表达式[0-9]作为分割符,所以函数ereg_replace()会将原字符串中所有的单个数字字符替换为空格。代码15-3的执行结果如图15-3所示。
函数eregi_replace()也可以将匹配正则表达式的字符串加以替换,该函数的语法如下所示。
string eregi_replace(string$pattern,
string$replacement,string$string)
函数eregi_replace()的用法和函数ereg_replace()完全一样,不同之处在于函数eregi_replace在做匹配时忽略字母的大小写。代码15-4是使用该函数的示例代码。
代码15-4 在程序中使用eregi_repalce()替换匹配字符串15-4.php
01 <?php
02 $str="You have a car,I have a Car,We have cARs!";//定义字符串变量
03 echo"<b>替换前字符串为:</b><br/>";
04 echo$str;
05 echo"<br/>";
06 echo"<br/>";
07
08 $pattern="car";//要匹配的字符串
09 $replacement="Apple";//替换后的字符串
10 $str_rpc=eregi_replace($pattern,$replacement,$str);
11 echo"<b>替换后字符串为:</b><br/>";
12 echo$str_rpc;
13 ?>
【代码解析】这段代码将字符串You have a car,I have a Car,We have cARs!中的cars替换成Apple,因为使用的函数eregi_replace()是不区分大小写的,所以字符串Car和cAR也会被替换。代码15-4的执行结果如图15-4所示。
共有条评论 网友评论