我想分析SRT字幕:解析SRT字幕
1
00:00:12,815 --> 00:00:14,509
Chlapi, jak to jde s
těma pracovníma světlama?.
2
00:00:14,815 --> 00:00:16,498
Trochu je zesilujeme.
3
00:00:16,934 --> 00:00:17,814
Jo, sleduj.
每個項目進入結構。與此regexs:
答:
RE_ITEM = re.compile(r'(?P<index>\d+).'
r'(?P<start>\d{2}:\d{2}:\d{2},\d{3}) --> '
r'(?P<end>\d{2}:\d{2}:\d{2},\d{3}).'
r'(?P<text>.*?)', re.DOTALL)
B:
RE_ITEM = re.compile(r'(?P<index>\d+).'
r'(?P<start>\d{2}:\d{2}:\d{2},\d{3}) --> '
r'(?P<end>\d{2}:\d{2}:\d{2},\d{3}).'
r'(?P<text>.*)', re.DOTALL)
而這個代碼:
for i in Subtitles.RE_ITEM.finditer(text):
result.append((i.group('index'), i.group('start'),
i.group('end'), i.group('text')))
與代碼BI僅具有一個在陣列的(因爲貪婪項*)並且由於沒有貪婪,代碼AI具有空的'文本'。*?
如何治好嗎?
感謝
當我讀到這,我才意識到我以前做過,但不記得如何。事實證明,我是通過程序進行的,而不是使用正則表達式。正則表達式非常優雅。如果您有興趣,可以在https://svn.jaraco.com/jaraco/python/jaraco.media/jaraco/media/srt.py找到我曾用於SRT字幕的Python類(請注意,它從jaraco.util進口的「grouper」只是來自itertools文檔的'grouper'。 – 2010-04-11 12:59:12