Regex Arama Yardım

2 Cevap php

Bir dize Verilen gibi:

a:2:{i:0;s:1:"1";i:1;s:1:"2";}

Ben tırnak içinde her tamsayı bulmak ve dize bulunan tüm tamsayılar bir dizi oluşturmak istiyorum.

Sonuçta gibi bir dizi olmalıdır:

Array
(
    [0] => 1
    [1] => 2
)

(: Ben preg_match () kullanın ama ben normal ifadeler ile hiçbir deneyimi var tahmin ediyorum

2 Cevap

Buna ne dersiniz:

 $str = 'a:2:{i:0;s:1:"1";i:1;s:1:"2";}';
 print_r(array_values(unserialize($str)));

Değil bir regex, aynı cevap.

Sahip dize tefrika PHP dizi olduğu için bu çalışır. Bir regex kullanarak bunu yapmak için yanlış bir yol olacaktır.

(Bir programda) regex bu gibi görünecektir:

$str = 'a:2:{i:0;s:1:"1";i:1;s:1:"2";}';
preg_match_all('/"(\d+)"/', $str, $matches);
print_r($matches[1]);