查找字符串是正则表达式的主要应用。在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()代替。