为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 unicode 字幕中提取文本?

如何从 unicode 字幕中提取文本?

PHP
跃然一笑 2022-01-24 09:58:00
我有一个格式如下的 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 上查看另一个演示。


查看完整回答
反对 回复 2022-01-24
  • 1 回答
  • 0 关注
  • 216 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号