2012-02-20 131 views
3

我的腦袋正在轉動,我試圖自己做,但無法弄清楚。所以我再次轉向你們的知識。刪除除最後一個以外的逗號w 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 

(在上面的字符串注意逗號)

我想擁有所有的「浸漬料,替換爲」 /「字符串替換爲」只有一個逗號末(就像顯示在第一示例)

我的頭與紡紗,pregreplace

預先感謝;)

+3

'strrpos','substr','str_replace',這就是全部。 – 2012-02-20 22:37:46

+0

這兩個都很好,我會在接下來的10分鐘內選擇答案,我注意到我的數據,我也有多條線,就像這樣:我的頭旋轉着,pregreplace(射擊我不能編輯它在這裏有多行......但基本上也需要使用同一個腳本來完成單行。 – Ossi 2012-02-20 23:06:30

回答

8

您可以使用「正期待」這樣的:

,(?=.*,)

先行在括號中的一部分。它基本上說,「只有當有字符串中的另一個逗號後替換此逗號

的代碼是這樣的:

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

我測試了與使用RegexBuddy,以確認它的工作原理:

enter image description here

+1

你在第一個''preg_replace''參數中缺少模式分隔符。或者這些日子他們是否可選?我在這裏展示我的年齡?否則,+1。 – 2012-02-20 22:47:24

+0

@justsomebody好的,趕上!我已經更新了我的答案。 – 2012-02-20 22:48:45

+0

感謝您的回答和解釋;) – Ossi 2012-02-20 23:19:05

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

以上應該做你所需要的。

+0

在這種情況下'strrpos'會比'preg_match_all'更有效嗎? – 2012-02-20 22:54:44

+0

希望我可以給2個答案學分...無論如何,我給你一個凹凸...謝謝 – Ossi 2012-02-20 23:18:43

+1

@ ColinO'Dell是的,我最初編寫的解決方案使用字符串函數,但由於請求是專門爲使用preg_replace我提供解。 – 2012-02-21 14:24:25