2012-02-20 18 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'、それだけです。 –

+0

どちらもうまくいきます。次の10分間に回答を選択します。私のデータに気づきました。 pregreplaceと一緒に回転しています(Shoot I cant edここには複数の行がありますが、基本的に同じスクリプトを使って1行にする必要があります。 – Ossi

答えて

8

あなたはこのように「肯定先読み」を使用することができます。

,(?=.*,)

先読みは、括弧内の部分です。それは基本的に別のカンマ以降の文字列であります場合にのみ、このカンマを置き換える」と言う

コードは次のようになります。

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

が、私はそれを確認するためにRegexBuddyでこれをテストした作品:

enter image description here

+1

最初の '' preg_replace''引数にパターンデリミタがありません。最近はオプションですか?ここに私の年齢を示していますか?そうでなければ、+1。 –

+0

@justsomebodyいいキャッチ!私は私の答えを更新しました。 –

+0

回答と説明をありがとう;) – Ossi

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

上記は必要なものです。

+0

この場合、 'strrpos'は' preg_match_all'よりも効率的な方法でしょうか? –

+0

願い私は2つの答えのクレジットを与えることができます...私はあなたにちょっとした衝撃を与えました...ありがとう – Ossi

+1

@ ColinO'Dellはい、私はもともと文字列関数を使って解決策を書いていましたが、リクエストはpreg_replace溶液。 –