一つのオプション(もしあれば)、最後のコンマとその周囲の空間に合うようにpreg_replace
を使用して' and '
でそれを置き換えることです:
$input = preg_replace('/\s*,\s*(?!.*,)/',' and ',$input);
See it
説明:
\s* : Optional whitespace
, : A literal comma
\s* : Optional whitespace
(?!.*,) : Negative lookahead. It says match the previous pattern(a comma
surrounded by optional spaces) only if it is not followed
by another comma.
オルタナティvelyあなたが貪欲な正規表現を使用することができますpreg_match
として:
$input = preg_replace('/(.*)(?:\s*,\s*)(.*)/','\1 and \2',$input);
See it
説明:
(.*) : Any junk before the last comma
(?:\s*,\s*) : Last comma surrounded by optional whitespace
(.*) : Any junk after the last comma
ここで重要なのは、最後のコンマの前の部分に一致するように貪欲な正規表現.*
を使用することです。貪欲は.*
と最後のカンマ以外はすべて一致します。それを行うには
それは最後のカンマを取り除くだけでしょうか? – Chris
@Chris:はい。私が投稿した理想のリンクを見ることができます。 – codaddict