Ben bu pasajı tavsiye gerekir
$text = preg_replace('|(A.*)?A(.*)C|', '$1foo$2bar', $text);
Bu "AB ABC D" ABC maç ve "AB fooBbar D" ile yerini alacak; Gördüğünüz gibi bu onu kaybetmemek için de, 1 $ ile değiştirme dizesi tekrarlamak zorunda yanı başında "AB" bölümünü eşleşir.
Bu böyle bir sonuç almak için en iyi yolu nedir?
Bir bayrak X öyle ki var mı
$text = preg_replace('|A(.*)C|X', 'foo$1bar', $text);
aynı sonucu üretir?
Ben açık oldum umarım
Teşekkür ederiz!
EDIT: A, B, C keyfi karakter atom dizeleri gibi, onlar da whitespaces içerebilir düşünün
O "ABC ABC" sadece ikinci "ABC" ile eşleşir gibi Ayrıca, sunulan örnek, aslında arabası olduğunu.
EDIT2: Özür dilerim, ben muhtemelen çok kötü sorun açıkladı ettik. Nokta ben maçta hiçbir alt dize bir olduğunu, böylece whatever iki A, C dize arasında maç isterdim olduğunu
Tekrar teşekkürler