Tamam bu İngilizce açıklamak gerçekten zor, bu yüzden ben sadece bir örnek vereyim.
Ben aşağıdaki biçimde dizeleri var gidiyorum:
key-value;key1-value;key2-...
ve ben bir dizi olarak veri ayıklamak gerekiyor
array('key'=>'value','key1'=>'value1', ... )
Ben bu işlevselliği (çoğu) ulaşmak için regexpi kullanmayı planlıyorsanız ve bu normal bir ifade yazdı:
/^(\w+)-([^-;]+)(?:;(\w+)-([^-;]+))*;?$/
preg_match
ve bu kod ile çalışmak için:
for ($l = count($matches),$i = 1;$i<$l;$i+=2) {
$parameters[$matches[$i]] = $matches[$i+1];
}
Giriş dizesi ilk ve son anahtar-değer çiftleri - Ancak sıradanifade açıkçası sadece 4 geribaşvuruları döndürür. Bu etrafında bir yolu var mı? Ben sadece dize doğruluğunu test ve mükemmel sonuçları ile döngüler PHP'nin explode
kullanmak için regex kullanabilirsiniz biliyorum, ama ben düzenli ifadeler ile mümkün olup olmadığını gerçekten merak ediyorum.
Kısacası, ben normal ifadeler vasıtasıyla bir dize bu key-value;
çiftleri bir keyfi sayıda yakalamak gerekir.