我有一个格式如下的 unicode 字幕文件:300:01:40,200 --> 00:01:43,326english part400:01:43,534 --> 00:01:44,851خط فارسی500:01:45,063 --> 00:01:48,485complex part مخلوط600:01:45,063 --> 00:01:48,485complex part مخلوطin 2 lines如何提取数字作为键和文本作为值[ [3] => english part [4] => خط فارسی [5] => complex part مخلوط [6] => complex part مخلوط</br>in 2 lines]
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
不要将找到的数字用作索引。更好地使用正在进行的索引和键/值对。
也就是说,您可以选择(启用multiline和verbose,m和x):
^(\d+)\R
[->\d: ,]+\R
((?:.+\R?)+)
在 regex101.com 上查看演示。
在PHP这可能是
<?php
$text = <<<END
3
00:01:40,200 --> 00:01:43,326
english part
4
00:01:43,534 --> 00:01:44,851
خط فارسی
5
00:01:45,063 --> 00:01:48,485
complex part مخلوط
6
00:01:45,063 --> 00:01:48,485
complex part مخلوط
in 2 lines
END;
$regex = <<<END
~
^(?P<line>\d+)\R
[->\d: ,]+\R
(?P<content>(?:.+\R?)+)
~mx
END;
preg_match_all($regex, $text, $matches);
print_r($matches);
?>
在 ideone.com 上查看另一个演示。
- 1 回答
- 0 关注
- 216 浏览
添加回答
举报
0/150
提交
取消
