首先来看看 POSIX 风格正则表达式的两个主要函数: ereg 函数:(正则表达式匹配) 格式:int ereg ( string pattern,string string [,array ®s] ) 注意:使用 Perl 兼容正则表达式语法的 preg_match() 函数通常是比 ereg() 更快的替代方案。(一般的话还是使用 preg_match() ,比较好勒~~) 以区分大小写的方式在 string 中寻找与给定的正则表达式 pattern 所匹配的子串。如果找到与 pattern 中圆括号内的子模式相匹配的子串并且函数调用给出了第三个参数 regs,则匹配项将被存入 regs 数组中。$regs[1] 包含第一个左圆括号开始的子串,$regs[2] 包含第二个子串,以此类推。$regs[0] 包含整个匹配的字符串。 返回值:如果在 string 中找到 pattern 模式的匹配则返回 所匹配字符串的长度,如果没有找到匹配或出错则返回 FALSE。如果没有传递入可选参数 regs 或者所匹配的字符串长度为 0,则本函数返回 1。 来看看 ereg() 函数的例子: 以下代码片断接受 ISO 格式的日期(YYYY-MM-DD)然后以 DD.MM.YYYY 格式显示: <div class="codetitle"><a style="CURSOR: pointer" data="81168" class="copybut" id="copybut81168" onclick="doCopy('code81168')"> 代码如下:<div class="codebody" id="code81168"> <?php if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$date,$regs)) { echo "$regs[3].$regs[2].$regs[1]"; } else { echo "Invalid date format: $date"; } ?> ----------------------------------------------------------------------------------- ereg_replace 函数:(正则表达式替换) 格式:string ereg_replace ( string pattern,string replacement,string string ) 函数说明: 本函数在 string 中扫描与 pattern 匹配的部分,并将其替换为 replacement。 返回替换后的字符串。(如果没有可供替换的匹配项则会返回原字符串。) 如果 pattern 包含有括号内的子串,则 replacement 可以包含形如 digit 的子串,这些子串将被替换为数字表示的第几个括号内的子串; 则包含了字符串的整个内容。最多可以用九个子串。括号可以嵌套,此情形下以左圆括号来计算顺序。 如果未在 string 中找到匹配项,则 string 将原样返回。 来看看这个函数例子吧: 1,下面的代码片断输出 "This was a test" 三次: <div class="codetitle"><a style="CURSOR: pointer" data="72882" class="copybut" id="copybut72882" onclick="doCopy('code72882')"> 代码如下:<div class="codebody" id="code72882"> <?php $string = "This is a test"; echo str_replace(" is"," was",$string); echo ereg_replace("( )is","1was",$string); echo ereg_replace("(( )is)","2was",$string); ?> 要注意的一点是如果在 replacement 参数中使用了整数值,则可能得不到所期望的结果。这是因为ereg_replace() 将把数字作为字符的序列值来解释并应用之。例如: 2,replacement 参数为整数时的例子: <div class="codetitle"><a style="CURSOR: pointer" data="50856" class="copybut" id="copybut50856" onclick="doCopy('code50856')"> 代码如下:<div class="codebody" id="code50856"> <?php / 不能产生出期望的结果 / $num = 4; $string = "This string has four words."; $string = ereg_replace('four',$num,$string); echo $string; / Output: 'This string has words.' / / 本例工作正常 / $num = '4'; $string = "This string has four words."; $string = ereg_replace('four',$string); echo $string; / Output: 'This string has 4 words.' / ?> 3,将 URL 替换为超链接: <div class="codetitle"><a style="CURSOR: pointer" data="90377" class="copybut" id="copybut90377" onclick="doCopy('code90377')"> 代码如下:<div class="codebody" id="code90377">$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=" "> |