2016-09-04 3 views
0

似たような質問がたくさんありますが、まったく私のケースに対応していませんでした。 カンマ以外のスペースと一致するものすべて

Apple, Banana, Carrot and Durian, Eggs 

だから一部の値が簡単な言葉であり、他は複数の単語を持っている:

は、私はそうのような値のカンマ区切りのリストを持っています。私は引用符のペアで各値をラップする必要がある、と私はかなり近い私を得た答えを見つけました:

preg_replace($list, '/([^,]+)/g', '"$1"') 

これが生成します。

"Apple","Banana","Carrot and Durian","Eggs" 

しかし、問題があるの:それはスペースを削除しますカンマの後に。私は空白文字/([^,\s]+)/gを追加した場合、それはもうコンマの後にスペースを削除しませんが、値が内部のスペースと一致します。事前にhttps://regex101.com/r/eN2hY4/31

おかげでたくさんの

"Apple", "Banana", "Carrot" "and" "Durian", "Eggs" 

ライブバージョンを!

+3

を、なぜスペースは問題が取り除かれた後、コンマのですか? –

+0

本文に二重引用符が含まれているとどうなりますか? – trincot

+1

https://regex101.com/r/eN2hY4/32? –

答えて

2

\Kを使用して、以前に一致した文字を破棄します。

\s*\K([^,]+) 

DEMO

+0

短くてシンプル+1 – anubhava

+1

@anubhavaありがとう。久しぶり :-) –

1

あなたがそれを行うことができます:ちょうど好奇心から

$str ='Apple, Banana, Carrot and Durian, Eggs'; 

$result = '"' . strtr($str, [', '=>'", "']) . '"'; 
関連する問題