Regex Ereg_替换为字符串

Regex Ereg_替换为字符串,regex,ereg-replace,Regex,Ereg Replace,我有这样一个字符串: $str = "{gfgd}i:123;a:7:{gfgd}i:5;a:35:"; 我想将其替换为: $str = "{gfgd},{gfgd},"; 我想用ereg_替换它,替换这种短语: i:[0-9]a:[0-9]:进入,签名 我试试看: $str = "i:143;a:5:{gfgd}i:123;a:7:{gfgd}i:5;a:35:"; $text = ereg_replace("/^i:[0-9]+;a:[0-9]+:+$", "

我有这样一个字符串:

$str = "{gfgd}i:123;a:7:{gfgd}i:5;a:35:"; 
我想将其替换为:

$str = "{gfgd},{gfgd},"; 
我想用ereg_替换它,替换这种短语:

i:[0-9]a:[0-9]:进入,签名

我试试看:

     $str = "i:143;a:5:{gfgd}i:123;a:7:{gfgd}i:5;a:35:";  
     $text = ereg_replace("/^i:[0-9]+;a:[0-9]+:+$", ",", $str);
但我不工作。你能帮助我吗? 提前感谢

不要使用ereg_replace,因为从PHP 5.3.0开始,此函数已被弃用

$str = "i:143;a:5:{gfgd}i:123;a:7{gfgd}i:5;a:35";  
$str = ereg_replace("\}[^\{]+\{", "},{", $str); // replace between } and { with },{
$str = ereg_replace("^[^\{]+", "", $str); // remove from first
$str = ereg_replace("[^\}]+$", ",", $str); // remove from last 
print $str;
使用preg_replace代替,您的正则表达式是错误的。移除锚固件^$


在线演示:

看起来您正在处理序列化为字符串的PHP数组或对象。我建议你跑步:

<?php
    $arrayOrObject = unserialize($theEntireStringYouGot);
    print_r($arrayOrObject);
?>
这样,您甚至可能根本不需要处理正则表达式


注意:它不会像您的示例中那样取消序列化一段字符串,而是将其全部输入。

好的,谢谢-取消序列化工作非常完美,但是如果我想在javascript中使用它,请使用json_encode将PHP中的数组序列化为json,然后在javascript中解码json。这里有一个JSON2库,您可以使用它,除非您使用的是jQuery或类似内置的jQuery。
<?php
    $arrayOrObject = unserialize($theEntireStringYouGot);
    print_r($arrayOrObject);
?>