删除字幕文件中的中文[(匹配中文的正则表达式/获取文件的编码格式)]

匹配中文的正则表达式: [\u4e00-\u9fa5]


前天我在看美剧《权力的游戏》的时候,发现没字幕,于是乎自己从网上下载字幕匹配到视频;发现网上的字幕都是比较全面的,中英双语字幕,但是对我来说,中文字幕是我不想要的,我要强迫自己只看英文字幕,但是在播放器设置上又无法只显示英文;所以只有通过修改字幕文件,将中文删除喽;
本以为一个正则表达式 * 就可以把中文给匹配掉的,但事情并没有那么简单,因为一般带中文的文件有GBK,Unicode,UTF-8,UTF-16……好几种。所以在读取文件和写入文件的时候都需要指定编码格式.
一开始我以为10集的字幕都是同一种编码格式的(Unicode)(可以通过另存为查看到文件的编码格式;),所以我就用unicode解析文件,发现第一个字幕文件可以修改成功,但是后来的9个字幕文件都出现了乱码;查看发现后面的几个文件的编码不是Unicode,有UTF-8和ANSI两种,这时候我就想了,怎么样可以通过一个程序得到一个文件的编码格式呢, 这时候就省力了,最后百度了一下,果然找到了答案;

1.字幕文件片段:

Dialogue: 0,0:54:02.00,0:54:04.86,*Default,NTP,0000,0000,0000,,我欠您一条命 先生\N{\fs16}I owe you my life, ser.{\r}
Dialogue: 0,0:54:04.90,0:54:06.53,*Default,NTP,0000,0000,0000,,我深感荣幸\N{\fs16}The honor is mine,{\r}
Dialogue: 0,0:54:06.57,0:54:08.77,*Default,NTP,0000,0000,0000,,女王陛下\N{\fs16}my queen.{\r}
Dialogue: 0,0:54:12.14,0:54:14.41,*Default,NTP,0000,0000,0000,,你认识他?\N{\fs16}You know this man?{\r}
Dialogue: 0,0:54:14.44,0:54:16.24,*Default,NTP,0000,0000,0000,,我认识他\N{\fs16}I know him{\r}

其中,我要去掉文件的中文字符;也就是介于0000,,和\N{\fs16}之间的这部分;

2.代码片段为:

niuStr = lineStr.replaceAll("(0000,,)(.*)[\u4e00-\u9fa5]*(.)*(\\\\N(\\{
   \\\\fs16\\})*)", "$1");

其中࿰

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值