欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

求一段php正则替换规则

程序员文章站 2022-06-01 09:44:02
...
/e/tags/index.php?page=23&tagname=%B9%D8%D3%DA%D3%D1%D2%EA%D5%E4%B9%F3%B5%C4%B8%F1%D1%D4&line=3&tempid=13

用preg_replace()把这样的替换成
/tag-%B9%D8%D3%DA%D3%D1%D2%EA%D5%E4%B9%F3%B5%C4%B8%F1%D1%D4/23/

当page=0的时候替换成
/tag-%B9%D8%D3%DA%D3%D1%D2%EA%D5%E4%B9%F3%B5%C4%B8%F1%D1%D4/

回复讨论(解决方案)

$str="/e/tags/index.php?page=0&tagname=%B9%D8%D3%DA%D3%D1%D2%EA%D5%E4%B9%F3%B5%C4%B8%F1%D1%D4&line=3&tempid=13";$s= preg_replace_callback(     '#.+?page=(\d+)&tagname=([^&]+)&.+#',     create_function(            '$matches',            'return "/tag-$matches[2]/". ($matches[1] ? $matches[1]."/" : "");'        ),		$str);echo $s;

/tag-%B9%D8%D3%DA%D3%D1%D2%EA%D5%E4%B9%F3%B5%C4%B8%F1%D1%D4/

$str="/e/tags/index.php?page=0&tagname=%B9%D8%D3%DA%D3%D1%D2%EA%D5%E4%B9%F3%B5%C4%B8%F1%D1%D4&line=3&tempid=13";$s= preg_replace_callback(     '#.+?page=(\d+)&tagname=([^&]+)&.+#',     create_function(            '$matches',            'return "/tag-$matches[2]/". ($matches[1] ? $matches[1]."/" : "");'        ),		$str);echo $s;

/tag-%B9%D8%D3%DA%D3%D1%D2%EA%D5%E4%B9%F3%B5%C4%B8%F1%D1%D4/

非常感谢 每次都是你帮我解决到问题 谢谢
顺便帮我看下这个吧
http://bbs.csdn.net/topics/390575116

$str="/e/tags/index.php?page=0&tagname=%B9%D8%D3%DA%D3%D1%D2%EA%D5%E4%B9%F3%B5%C4%B8%F1%D1%D4&line=3&tempid=13";$s= preg_replace_callback(     '#.+?page=(\d+)&tagname=([^&]+)&.+#',     create_function(            '$matches',            'return "/tag-$matches[2]/". ($matches[1] ? $matches[1]."/" : "");'        ),		$str);echo $s;

/tag-%B9%D8%D3%DA%D3%D1%D2%EA%D5%E4%B9%F3%B5%C4%B8%F1%D1%D4/

请教一下
 5   首页 上一页 1 2

为什么这一段替换不掉呢?