如何用php正则表达式替换变量?

例子:如何将<a href="list.php?id=132456">a</a> 用正则或其他方法,替换成
<a href="132456.html">a</a>
其中123456是变量。

1楼的怎么测试都不可能成功,因为匹配模式都没有加修饰符‘e’,不可以将替换字符串当做php代码一样计算出结果。
如果按照一楼的写法,应该写成:
$newstr=preg_replace('/<a href="list\.php\?id=(.+)">(.+)<\/a>/e','<a href="\\1">\\2<\/a>',$sourcestr);
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-12
$newstr = preg_replace("/<a href=\"list.php?id=(\d+)\">a<\/a>/","<a href=\"$1.html\">a</a>",$sourcestr);
我没开编辑器测试,可能?需要转义,试试吧。

如何用正则表达式来匹配替换?
其实可以不用正则表达式,直接用字符串替换就可以,php的例子程序如下

PHP正则表达式核心技术完全详解 第5节 php正则替换函数
preg_replace_callback() 函数的使用方式非常灵活,它可以执行一个正则表达式的搜索,并使用回调函数进行替换。这个回调函数可以是普通函数、匿名函数或类方法,非常适用于复杂或动态的替换需求。下面我们通过两个示例来具体了解如何使用 preg_replace_callback() 函数。在第一个示例中,我们将使用匿名函数进...

PHP正则表达式如何替换像这样的案例的
这个用正则表达式替换是比较简单的,因为有分隔符\/,所以把分隔符后面的都替换掉就行了.<?php str="龙门飞甲\/龙门飞甲电视剧版";regex="~\/.*?$~";echo preg_replace($regex,"",$str);?> 如果有多个用空格隔开的类似字符串,可以用下面的正则表达式替换 <?php str="龙门飞甲\/龙门飞甲电视剧...

php 正则表达式替换
php@header ( 'Content-type: text\/html;charset=GBK' );$subject = '美国留学网站';$pattern = "\/(留学)(?![^\\'\\"><]*[\\'\\"])\/";$result = preg_replace ( $pattern, "$1", $subject );echo $result;?>

求用php正则表达式来替换字符的写法。
或者 Control+Return 或 Shift+Return 或 Command+ Return (Macintosh) 回车符。确保如果没有使用正则表达式,则在搜索时取消对“忽略空白差别”的选择。请注意,这匹配特定字符,而不是一般意义上的换行符;例如,它不匹配 标签或 标签。回车符在“设计”视图中显示为空格而不是换行符。

【PHP】怎样用正则表达式取【】中括号内的内容并替换
= mysql_query("SELECT FROM `query_replace`WHERE uid=33",$conn);data = mysql_fetch_assoc($result);html='[email]你好:你于[time]设置了[action]';keys = array_keys($data);keys_string = '['.implode('],[',$keys).']';replace = explode(',',$keys_string);html = str_...

PHP 正则表达式如何添加URL参数 ,并把&替换成amp;
preg_replace('\/(&|\\\\?)pagesize=[^&]+\/', '', $_SERVER['REQUEST_URI']) str_replace 或replace 或preg_replace 用正则是比较笨的办法

如何用php替换特殊字符及之后的字符串。例如$url中间有空格,我想去掉空 ...
任务:删除字符串空格及其之后的所有内容 方法一:用正则表达式,正则模式为\/[\\s+].*$\/,示例语句:echo preg_replace('\/[\\s].*$\/', '', $url);方法二,使用substr,示例语句:echo substr($url, 0, strpos($url,' '));

php 正则表达式匹配一个字符串的多个值 然后逐一替换掉里面的 不全部替...
举个例子给你看看是不是你想要的。有个字符串“abcadeafg”,把其中的三个字母a分别替换成x,y,z:pattern = array('\/a\/', '\/a\/', '\/a\/');$replacement = array('x', 'y', 'z');$subject = 'abcadeafg';$res = preg_replace($pattern, $replacement, $subject , 1);echo $...

用正则表达式替换特殊字符为转义符用来做文件夹名
如果是php的话可以用preg_replace('\/([{\/\\:*?"<>|}])\/','',$str);

相似回答