正则:替换一行中的最后一个逗号

现在有个需求,需要将:

Wang T., Zhang J., Li S.

这种格式转换为:

Wang T., Zhang J. & Li S.

即将最后一个逗号转换为&符号。

搜索了一下,最后发现可以使用这种正则进行替换:

,(?=[^,]+$)

 

参考:

  1. http://house-of-fusion.10909.n7.nabble.com/How-to-find-the-last-comma-and-the-word-following-it-w-regex-td113028.html

用正则处理srt电影字幕

下了个电影,本身带的字幕翻译质量很差。从网上找了个高质量的字幕,结果发现在mplayer里无法显示,用文本编辑器打开字幕显示也很正常,和之前的字幕对比好像也没有什么差异。最后发现是在时间戳下面多出了一个空行:

1
00:00:10,000 --> 00:00:20,020

 本字幕仅供学习交流试看使用 禁止用于商业行为
 并请于下载后24小时内删除 若因私自传播造成法
 律问题 本人概不负责。

2
00:00:30,897 --> 00:00:33,333

“中东 1997年”

3
00:01:15,708 --> 00:01:18,912

呼叫01阿尔法,我们已控制住猎鹰

只要把空行删除,mplayer就可以正常显示字幕,于是用正则表达式进行替换,在komodoedit里用替换,打开多行、正则:

(,\d{3})\r\n\s+

替换为:

\1\r\n

这样就可以愉快地观影了。