除了最后一个w preg_replace之外,删除逗号

时间:2012-02-20 22:32:07

标签: php preg-replace

我的头在旋转,我试图自己做,但无法弄明白。所以我再一次转向你们的知识。

这些都是我可能的字符串:

My head is spinning with, pregreplace
My head is spinning, with, pregreplace
My head is, spinning, with, pregreplace
My head, is, spinning, with, pregreplace

(注意上面字符串中的逗号)

我希望所有“preg-replacement”/“string-replacement”最后只有一个逗号。(就像第一个例子中显示的那样)

我的脑袋旋转着,pregreplace

提前致谢;)

2 个答案:

答案 0 :(得分:8)

你可以像这样使用“积极向前看”:

,(?=.*,)

前瞻是parens中的一部分。它基本上说“只有在字符串后面有另一个逗号时才替换此逗号。

代码如下所示:

echo preg_replace('/,(?=.*,)/', '', $str);

我用RegexBuddy对此进行了测试,以确认其有效:

enter image description here

答案 1 :(得分:4)

preg_replace( '/,/', '', $my_string, preg_match_all( '/,/', $my_string) - 1);

以上应该做你需要的。