わかりました、これを英語で説明するのは本当に難しいので、例を挙げましょう。
次の形式の文字列を使用します。
key-value;key1-value;key2-...
データを抽出して配列にする必要があります
array('key'=>'value','key1'=>'value1', ... )
私はこの機能(のほとんど)を実現するためにregexpを使用することを計画しており、次の正規表現を記述しました。
/^(\w+)-([^-;]+)(?:;(\w+)-([^-;]+))*;?$/
使用するpreg_match
コードとこのコード:
for ($l = count($matches),$i = 1;$i<$l;$i+=2) {
$parameters[$matches[$i]] = $matches[$i+1];
}
ただし、正規表現は明らかに4つの後方参照(入力文字列の最初と最後のキーと値のペア)のみを返します。これを回避する方法はありますか?正規表現を使用して文字列の正確さをテストし、PHPをループで使用して完璧な結果を得ることができることは知っていますがexplode
、正規表現でそれが可能かどうかは本当に興味があります。
key-value;
つまり、正規表現を使用して、これらのペアの任意の数を文字列に取り込む必要があります。