fork download
  1. <?php
  2.  
  3. $text = <<<END
  4. 3
  5. 00:01:40,200 --> 00:01:43,326
  6. english part
  7.  
  8. 4
  9. 00:01:43,534 --> 00:01:44,851
  10. خط فارسی
  11.  
  12. 5
  13. 00:01:45,063 --> 00:01:48,485
  14. complex part مخلوط
  15.  
  16. 6
  17. 00:01:45,063 --> 00:01:48,485
  18. complex part مخلوط
  19. in 2 lines
  20. END;
  21.  
  22. $regex = <<<END
  23. ~
  24.   ^(?P<line>\d+)\R
  25.   [->\d: ,]+\R
  26.   (?P<content>(?:.+\R?)+)
  27. ~mx
  28. END;
  29.  
  30. preg_match_all($regex, $text, $matches);
  31. print_r($matches);
  32. ?>
Success #stdin #stdout 0.01s 24212KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [0] => 3
00:01:40,200 --> 00:01:43,326
english part

            [1] => 4
00:01:43,534 --> 00:01:44,851
خط فارسی

            [2] => 5
00:01:45,063 --> 00:01:48,485
complex part مخلوط

            [3] => 6
00:01:45,063 --> 00:01:48,485
complex part مخلوط
in 2 lines
        )

    [line] => Array
        (
            [0] => 3
            [1] => 4
            [2] => 5
            [3] => 6
        )

    [1] => Array
        (
            [0] => 3
            [1] => 4
            [2] => 5
            [3] => 6
        )

    [content] => Array
        (
            [0] => english part

            [1] => خط فارسی

            [2] => complex part مخلوط

            [3] => complex part مخلوط
in 2 lines
        )

    [2] => Array
        (
            [0] => english part

            [1] => خط فارسی

            [2] => complex part مخلوط

            [3] => complex part مخلوط
in 2 lines
        )

)