正则替换求指点!

举个例子
$a="[i=a][i=a v=你好]";
//替换内容
怎么把
[i=a]替换成<input name='a'/>
把[i=a v=你好]替换成<input name="a" value="你好"/>

就是说最后输出的是<input name="a"><input name="a" value="你好"/>
替换一个我会,两个都替换我就不知道怎么弄了
回复列表(26|隐藏机器人聊天)
  • @Ta / 2012-05-11 / /
    (*.)
  • @Ta / 2012-05-11 / /
    @HYGSH 晕,什么阿
  • @Ta / 2012-05-11 / /
    preg_replace("#[i=(.*)s+v=(.*)]#i","<input name="$1" value="$2"/>");试试可不可以 触屏打这些烦死
  • @Ta / 2012-05-11 / /
    恩,我试试.
  • @Ta / 2012-05-11 / /
    "/\[i\=(a)\]/","<input name='\\1'>",$a另外那个在写一个就好了,弄成函数,用函数输出你的$a,它规搜索替换的!不知我说的对否!
  • @Ta / 2012-05-11 / /
    @小易  恩,你的是安卓机吗?我姐的一千五,不过不支持点触笔,只能用手指点,要是打起字母来就想哭:(
    我想你的应该可以,但是输出的会不会是这个?→
    [i=a]<input name="a" value="你好"/>
    你没有替换第一个啊
  • @Ta / 2012-05-11 / /
    HTC G12不说了 打代码麻烦死
  • @Ta / 2012-05-11 / /
    电容屏就这样 也有电容笔的 只不过用不着
  • @Ta / 2012-05-11 / /
    @arox 额,你的意思是?↓
    function replace($t)
    {
    $a="[i=a][i=a v=你好]";
    $t=preg_replace("/\[i=(.*?)\]/i","<input name='\\1'/>",$a);
    $t=preg_replace("/\[i=(.*?) v=(.*?)\]/i","<input name='\\1' value='\\2'/>",$a);
    return $t;
    }
    replace($t);
    //输出这样写对吗?
  • @Ta / 2012-05-11 / /
    $str=preg_replace('!\\[i=(\w+)\s+v=(.*)\\]!U','<input name="\\1" value="\\2"/>',$str);
    $str=preg_replace('!\\[i=(\w+)\\]!U','<input name="\\1"/>',$str);
  • @Ta / 2012-05-11 / /
    要注意顺序。9楼你没有发现你的第一个就会把[i=a v=b]这样的也替换了吗?
  • @Ta / 2012-05-11 / /
    @老虎会游泳 额,还要顺序啊...试试。
    有一次我把这样的代码($a=$_GET['a'])写到最后尾,结果…表单没传成功。。我检查了N遍没看出原因
  • @Ta / 2012-05-11 / /
    @郑锋 不是的!你看老虎的,他写的的更好的,你把它包成函数!function re($str){虎代码;return $str;}外面就是echo re($a);
  • @Ta / 2012-05-11 / /
    @arox 噢!谢谢指点迷津。
     function()我还不太会用。
    还以为是
    echo
    re($str)呢.
  • @Ta / 2012-05-11 / /
    arox? 名字是什么意思 用有道翻译它都投降了
  • @Ta / 2012-05-11 / /
    @郑锋 现在实验成了吗?@老虎会游泳 老虎,[前不是只应该用一个反斜干吗?用来转异[,两个\\转异的不就成了第二个\了吗?求解
  • @Ta / 2012-05-11 / /
    我给自己起的英文名字,哈哈,艾瑞克斯!其实这不是真的意思
  • @Ta / 2012-05-11 / /
    echo '\[\]\\[\\]';
    你会知道答案。
  • @Ta / 2012-05-12 / /
    @老虎会游泳 额..实验了,按我写的输出的是,<input name="a" value="b"/>
    按你写的,输出
    <input name="a"/>
    我想让它两个同时替换后输出,没成功
添加新回复
回复需要登录