当前位置: 首页 > 图文教程 > 网络编程 > 正则表达式 > eregi_replace与preg_replace 函数代码的用法比较

正则表达式
RegExp对象的方法和属性
asp正则过滤重复字符串的代码
用Javascript正则实现url链接的解析类
正则表达式匹配 非XXX的行
正则表达式不包含属性
ASP正则函数替换分页后的参数
asp match正则函数使用Matchs实例
java正则表达式彻底研究
比较实用的正则表达式学习笔记
asp只采集网站可见文本的正则
asp.net常用正则表达式
js验证email的正则
java正则表达式验证函数
java 字符串匹配函数
js取得参数代码
Further Study of Rugular Expresions
正则表达式之全部符号对照表
正则文本框只能输入正整数
正则表达式在线测试工具
正则表达式提取网址、标题、图片等一例(.Net Asp Javascript/Js)的实现

正则表达式 中的 eregi_replace与preg_replace 函数代码的用法比较


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 90 ::
收藏到网摘: n/a

eregi_replace ( string pattern, string replacement, string string )
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit [, int &count]] )
以上两个函数基本义定义我知道
但是里面样式或参数的定义我搞不懂
例如以下是UBB与YBB Code的用法
$str = eregi_replace("\\[url]http://([^\\[]*)\\[/url\\]","<a href=\"http://\\1\" target=\"_blank\">\\1</a>",$str);
$text = preg_replace("!(\[url=)(http|https|ftp)(://\S+?)(\])(.+?)(\[/url\])!i", "<a href='\\2\\3' target='_blank'>\\5</a>", $text);
有谁能说明解决里面那些符号代表何意义?
我相信很多人也只会照抄来用
但是搞不懂意思,搞不懂意思的话,就不可能自己写程式,
发挥这函数的功能了
preg_replace() 函数使用了 Perl 兼容正则表达式语法,通常是比 ereg_replace() 更快的替代方案。
形式或(自 PHP 4.0.4 起)$n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本
n 可以从 0 到 99,其中 \\0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目
例子 1. 逆向引用后面紧接着数字的用法
复制代码 代码如下:

<?php
$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
print preg_replace($pattern, $replacement, $string);
/* Output
======
preg_replace() 搞不清楚是想要一个 \\1 的逆向引用后面跟着一个数字 1 还是一个 \\11 的逆向引用。本例中的解决方法是使用 \${1}1
April1,2003
*/
?>