POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace) ,需要的朋友可以参考下。
首先来看看 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 的子串,这些子串将被替换为数字表示的第几个括号内的子串;\0 则包含了字符串的整个内容。最多可以用九个子串。括号可以嵌套,此情形下以左圆括号来计算顺序。
如果未在 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">