首页 > 作文

通过正则表达式提取泰坦尼克号字幕里的所有台词

更新时间:2023-04-07 12:44:56 阅读: 评论:0

网上搜了一下看看有没有泰坦尼克号完整台词,找了好久也没找到合适的,要么不完整,要么收费,要么数据是错乱的,预期的台词是一个有中英文对照版的,然后按照格式一行行的排列,比如一行英文,一行中文,外加一行对应电影的时间

怎么办呢,想到了电影里的字幕,字幕里有数据的,数据格式也是统一的,我们利用正则提取一下就好了,开干

首先下载字幕,我在网上下载了一个,点击这个图片下载字幕文件:(点击这个图片,下载后把后缀名改成ssa就可以了)

然后查找文件里的规律,如下:

对于英文和中文有两种格式,对于英语来说,格式如下:

对于中文来说,格式如下:

思路

  可以看到前面部分差不多的,后面的字幕之前有几个字符不一样,例如英文字幕是0000&}结尾的,而中文字幕是3000&}结尾的

  我们可以用两个正则分别提取英语和中文的字幕信息,保存到对应的数组里,数组里的键名为字幕的时间,是个字符串格式,值可以是个数组,分别是对应的字幕

完整代码如下:

<?php$str = file_get_contents('./zimu.ssa');                        //load ssa filefunction getresult($preg){                                    //get subtitle interface    global $str;         $result = array();    if(preg_match_all($preg,$str,$match,preg_offt_capture)){        foreach($match[1] as $key => $val){            奥运会会徽的含义$result[trim($val[0],',')]=$match[2][$key][0];        }    }    return $result;}$result_en = getresult('/marked=([^d]*).*?0000&}(.*)/');    //获取英文字幕$result_cn = getresult('/marked=([^d]*).*?3000&}骁龙660和835(.*)/');    //获取中文字幕$result = array();$result_en = array_filter($result_en,function($val,$key) u(&$result,&$result_cn){    //将字幕合并到$result数组里    if(ist($result_cn[$key])){            $result[$key] = array($val,$result_cn[$key]);        unt($result_cn[$key]);    }el        return true;       惊天魔盗团2 豆瓣 },array_filter_u_both );function out($arr,$isarr=1){                                //out inteface    foreach($arr as $key => $val){        if($isarr)            echo $key."<br/>".$val[0]."<br/>".$val[1]."<br/><br/>";        el            echo $key."<br/>".$val."<br/><br/>"; 广州一对一   }}out($result);                    //输出中文和英文有对应的字幕out($result_en,0);                //输出只有英文的字幕out($celine dionresult_cn,0);                //输出只有中文的字幕?>

部分输出如下:

ok,it’s perfect~

下一篇贴出完整的字幕

正则里也遇到个问题,理想中[^d]改成[^(?:,d)]的话在getresult里就不需要调用trim()过滤掉末尾的,符号了,但是在php里(?:)不能用,可能php的正则引擎不支持这个功能吧,以后如果再深入研究的话再看看。

本文发布于:2023-04-07 12:44:54,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/3f5488b9b8b0a564e3c2645cf41957bd.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:通过正则表达式提取泰坦尼克号字幕里的所有台词.doc

本文 PDF 下载地址:通过正则表达式提取泰坦尼克号字幕里的所有台词.pdf

标签:字幕   英文   中文   正则
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图