Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Php regex

Merhaba arkadaşlar, php ile subrip altyazılar üzerinde çalışmak istiyorum fakat sahne preg_math ile sahne numarası almayı bir türlü beceremedim.

Bildiğiniz gibi ".srt" dosyalar şu şekilde:

2
00:00:02,116 --> 00:00:04,905
Onu buldum!
Hayır, hayır Emily.

3
00:00:04,973 --> 00:00:07,767
Benimle kal.
Hadi, benimle kal.

4
00:00:07,835 --> 00:00:09,401
Doktor nerede?!

5
00:00:09,468 --> 00:00:12,880
Masada kaldı.


Ben 2,3,4 ve 5 numaralarını almak istiyorum. "|[0-9]{1,4}[\s]{2}|" pattern'i ile bu sayıları almayı başardım fakat sahne numaralarının yanında repliğin bitiş süresinin ","den sonraki kısmını da yakalıyor bu pattern. Acaba sadece sahne numaralarını nasıl alabilirim?

Şimdiden teşekkürler.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • uls adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    65 cevap - 10 soru
    preg_match_all('#\s([0-9]{1,4})\s#', $string, $dizi, PREG_PATTERN_ORDER);
    print_r($dizi[1]);
    


    ilk sahne numarası hariş hepsiyle eşleşiyor. ilkinin başında bir boşluk bırakırsanız onla da eşleşir. dizi[0] değil, dizi[1] yaptım dikkat.

    sizin ifadenizin hatalı çalışmasının sebebi \s teriminin sadece yeni satırla değil, boşluk, tab gibi tüm whitespace'ler ile eşleşmesi.

    daha güzel bir regex yapılabilir ama biraz daha araştırmak lazım.

Cevaplar

Hiç cevap bulunamadı.