我这个正则错在哪里??请指点,在线等

sancyxu 2008-12-23 05:38:31
<?php

$a='<li><a href="test_index.php?id=wo">我</a></li><li><a href="test_index.php?id=ni">你</a></li>';

echo preg_replace("/test_index\.php\?id=(.+)\"/i", "/\\1\"", $a);
?>

想要的结果
<li><a href="/wo">我</a></li><li><a href="/ni">你</a></li>

实际结果:
<li><a href="/wo">我</a></li><li><a href="test_index.php?id=ni">你</a></li>

为什么???在线等,谢谢各位了
...全文
57 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzxlyd 2008-12-24
  • 打赏
  • 举报
回复
echo str_replace('test_index.php?id=', '', $a);
wstonea 2008-12-24
  • 打赏
  • 举报
回复
$a=' <li> <a href="test_index.php?id=wo">我 </a> </li> <li> <a href="test_index.php?id=ni">你 </a> </li>';

echo preg_replace("/test_index\.php\?id=(.+?)\"/i", "/\\1", $a);
preg_match_all("/test_index\.php\?id=(.+)\"/i",$a,$r);
print_r($r);
preg_match_all("/test_index\.php\?id=(.+?)\"/i",$a,$r);
print_r($r);

贪婪匹配问题。查查手册说的比较详细
vnking 2008-12-24
  • 打赏
  • 举报
回复
支持楼主,虽然我看不出其中的道道!
sancyxu 2008-12-23
  • 打赏
  • 举报
回复
echo preg_replace("/test_index\.php\?id=(.+)\"/i", "/\\1\"", $a);

改称

echo preg_replace("/test_index\.php\?id=(.?)/i", "/\\1", $a);

问题解决。

但是哪位能告诉原因吗?

谢谢

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧