Мне нужно что-то вроде
preg_match ((element1) (. *?)если-(Количество:) ([^ 0])-возвратная ИСТИНА, $ Ул);
но (.*?)
все испортил, потому что он пропускает каждый (Quantity:)(0)
прежде чем находит (Quantity:)([^0])
из другого элемента, например (item2)
идти рядом с (element1)
element1 случайный: случайный Количество: 0 element2 random: random Количество: 0 item1 random: random Количество: 0 item2 random: random Количество: 999
Так, как я могу сказать, что PHP делать строго по (Quantity:)([^0])
и вернуть ИСТИНА, но если это (Quantity:)(0)
вернуть ЛОЖЬ и не играть со мной, делая бесконечное восстановление (Quantity:)(0)
как (.*?)
тоже?
ОБНОВЛЕНИЕ ЖИВОЙ ОБЗОР это то, что я хочу http://www.regexr.com/3a3jn это то, чего я не хочу, чтобы случилось http://www.regexr.com/3a3jq разместите его как текст для ссылок на примеры, и вы поймете, о чем я говорю
{ «SkuAttr»: «14: 200001438 # 8; 5: 100014064», «skuPropIds»: «200001438,100014064», «skuVal»: { «actSkuBulkCalPrice»: «3,05», «actSkuBulkPrice»: «3,05», «actSkuCalPrice «:» 3,47″ , «actSkuDisplayBulkPrice»: «США
$ 3,05» , «actSkuMultiCurrencyBulkPrice»: «3,05», «actSkuMultiCurrencyCalPrice»: «3,47», «actSkuMultiCurrencyDisplayPrice»: «3,47», «actSkuMultiCurrencyPrice»: «США
$ 3,47» , «actSkuPrice»: «3,47», «availQuantity»: 999, «bulkOrder»: 5, «инвентарь»: 999, «isActivity»: правда, «skuBulkCalPrice»: «3,32», «skuBulkPrice»: «3,32» «skuCalPrice»: «3,77», «skuDisplayBulkPrice»: «США
$ 3,32» , «skuMultiCurrencyBulkPrice»: «3,32», «skuMultiCurrencyCalPrice»: «3,77», «skuMultiCurrencyDisplayPrice»: «3,77», «skuMultiCurrencyPrice»: «США
$ 3.77» , «skuPrice»: «3,77»}}, { «skuAttr»: «14: 200001438 # 8; 5: 100014065», «skuPropIds»: «200001438,100014065», «skuVal»: { «actSkuBulkCalPrice»:» 3,05″ , «actSkuBulkPrice»: «3,05», «actSkuCalPrice»: «3,47», «actSkuDisplayBulkPrice»: «США
$ 3,05» , «actSkuMultiCurrencyBulkPrice»: «3,05», «actSkuMultiCurrencyCalPrice»: «3,47», «actSkuMultiCurrencyDisplayPrice»: «3,47», «actSkuMultiCurrencyPrice»: «США
$ 3,47» , «actSkuPrice»: «3,47», «availQuantity»: 0, «bulkOrder»: 5, «инвентарь»: 0, «isActivity»: правда, «skuBulkCalPrice»: «3,32», «skuBulkPrice»: «3,32» «skuCalPrice»: «3,77», «skuDisplayBulkPrice»: «США
$ 3,32» , «skuMultiCurrencyBulkPrice»: «3,32», «skuMultiCurrencyCalPrice»: «3,77», «skuMultiCurrencyDisplayPrice»: «3,77», «skuMultiCurrencyPrice»: «США
$ 3,77» , «skuPrice»: «3,77»}}
Я нашел душевность
preg_match('/14:200001438#8;5:100014065.*?availQuantity":(\d+)/', $str);
и затем мы проверяем, если (\d+)
равно 0 или любое число
Живой пример http://www.regexr.com/3a3k0
Других решений пока нет …