ereg_replace -- 替换正则表达式几个例子

ereg_replace -- 替换正则表达式

说明

string ereg_replace ( string pattern, string replacement, string string )

本函数在 string 中扫描与 pattern 匹配的部分,并将其替换为 replacement

返回替换后的字符串。(如果没有可供替换的匹配项则会返回原字符串。)

如果 pattern 包含有括号内的子串,则 replacement 可以包含形如 \\digit 的子串,这些子串将被替换为数字表示的的第几个括号内的子串;\\0 则包含了字符串的整个内容。最多可以用九个子串。括号可以嵌套,此情形下以左圆括号来计算顺序。

如果未在 string 中找到匹配项,则 string 将原样返回。

例如,下面的代码片断输出 "This was a test" 三次:

例子 1. ereg_replace() 例子

<?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. ereg_replace() 例子

<?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', $num, $string
);
echo
$string;   
/* Output: 'This string has 4 words.' */
?>

例子 3. 将 URL 替换为超连接

<?php
$text
= ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]"
,
                     
"<a href=\"\\0\">\\0</a>", $text
);
?>

用ereg_replace正则匹配替换的问题。

$string="start <!--n-->This is a test<!--n--> end";


  (两个<!--n-->中间的内容是不确定的),我想用ereg_replace将两个<!--n-->中间的内容替换成另外的内容,应该怎么写呢?我这样写:

ereg_replace("^<!--n-->*+<!--n-->$","OK",$string);

结果不对。  

有人提议这样写:

ereg_replace("<!\-\-n\-\->.+<!\-\-n\-\->","OK",$string);

更有这样的写法:

<?php
$string="start <!--n-->This is a test<!--n--> end";
echo htmlspecialchars($string).'<br>';
$str=ereg_replace("<!\-\-n\-\->.+<!\-\-n\-\->","<!--n-->OK<!--n-->",$string);
echo htmlspecialchars($str);
?>

甚至这样:

$string = "start <!--n-->This is a test<!--n--> end";
$string = preg_replace("/(<!--n-->)(.*)(
\\1)/
", "<!--n-->ok<!--n-->", $string);
echo $string;

 

Trackbacks: 点击获得Trackback地址,Encode: UTF-8  点击获得Trackback地址,Encode: GB2312 or GBK  点击获得Trackback地址,Encode: BIG5
Tags: ereg_replace, 正则表达式 | 分类:PHP技术
浏览概况:评论:0 | 阅读:9596
文章评论(0)
发表评论
用户名:
密码(游客无需):
网址/E-mail:
      记住我的信息