我正在使用 Java 进行开发,我有一长串文本,其中包含我需要的有关特定 DVD 的所有信息。(这是 HandBrakeCLI 的扫描输出)。我需要构建一个正则表达式,它将捕获我需要的每一位信息,但忽略一些特殊情况。我的程序由 DVD、标题、章节和语言对象组成。它的结构如下: DVD 有标题 标题有章节和语言 我需要从输出中正则表达式输出以下信息:标题编号 - 语言名称和音轨编号 - 章节编号
给我带来特别麻烦的一个特殊情况是某些标题开始扫描,但输出显示它们被忽略,因为它太短并从下一个标题开始。我不知道如何编写一个忽略任何包含它的匹配项的正则表达式。我一直很难弄清楚!
scan: scanning title (\d+)?.{0,500}(ignoring title)
这将捕获所有需要忽略的标题,但我认为我需要一个长正则表达式来捕获我需要的所有信息并忽略特殊情况。如果我能以某种方式将每个有效的标题扫描绑定到一个组中,那就太好了!非常感谢您的帮助!
以下是输出示例:
[11:25:53] scan: DVD has 9 title(s)
[11:25:53] scan: scanning title 1
[11:25:53] scan: opening IFO for VTS 1
[11:25:53] scan: duration is 00:00:00 (76 ms)
[11:25:53] scan: ignoring title (too short)
[11:25:53] scan: scanning title 2
[11:25:53] scan: opening IFO for VTS 2
[11:25:53] scan: duration is 01:59:27 (7167153 ms)
[11:25:53] pgc_id: 1, pgn: 1: pgc: 0x1bad980
[11:25:53] scan: vts=2, ttn=1, cells=0->17, blocks=4->3, 1906832 blocks
[11:25:53] scan: checking audio 1
[11:25:53] scan: id=80bd, lang=English (AC3), 3cc=eng ext=0
[11:25:53] scan: checking audio 2
[11:25:53] scan: id=81bd, lang=Deutsch (AC3), 3cc=deu ext=0
[11:25:53] scan: checking audio 3
[11:25:53] scan: id=82bd, lang=English (AC3), 3cc=eng ext=0
[11:25:53] scan: checking audio 4
[11:25:53] scan: id=83bd, lang=Espanol (AC3), 3cc=spa ext=0
[11:25:53] scan: checking audio 5
[11:25:53] scan: id=84bd, lang=Francais (AC3), 3cc=fra ext=0
[11:25:53] scan: checking audio 6
[11:25:53] scan: id=85bd, lang=Italiano (AC3), 3cc=ita ext=0
[11:25:53] scan: checking audio 7
[11:25:53] scan: id=86bd, lang=Portugues (AC3), 3cc=por ext=0
[11:25:53] scan: checking audio 8
[11:25:53] scan: id=87bd, lang=Samoan (AC3), 3cc=smo ext=0
[11:25:53] scan: checking subtitle 1
[11:25:53] scan: id=20bd, lang=English, 3cc=eng
[11:25:53] scan: title 2 has 18 chapters
[11:25:53] scan: chap 1 c=0->0, b=4->51422 (51419), 127306 ms
[11:25:53] scan: chap 2 c=1->1, b=51423->79617 (28195), 100277 ms
[11:25:53] scan: chap 3 c=2->2, b=79618->170050 (90433), 233291 ms
[11:25:53] scan: chap 4 c=3->3, b=170051->192087 (22037), 85367 ms
[11:25:53] scan: chap 5 c=4->4, b=192088->327371 (135284), 568451 ms
[11:25:53] scan: chap 6 c=5->5, b=327372->431726 (104355), 283191 ms
[11:25:53] scan: chap 7 c=6->6, b=431727->441166 (9440), 40203 ms
[11:25:53] scan: chap 8 c=7->7, b=441167->675145 (233979), 977815 ms
[11:25:53] scan: chap 9 c=8->8, b=675146->870812 (195667), 778680 ms
[11:25:53] scan: chap 10 c=9->9, b=870813->959026 (88214), 218223 ms
[11:25:53] scan: chap 11 c=10->10, b=959027->1134726 (175700), 748540 ms
[11:25:53] scan: chap 12 c=11->11, b=1134727->1375583 (240857), 1013772 ms
[11:25:53] scan: chap 13 c=12->12, b=1375584->1452670 (77087), 204138 ms
[11:25:53] scan: chap 14 c=13->13, b=1452671->1461940 (9270), 41303 ms
[11:25:53] scan: chap 15 c=14->14, b=1461941->1698075 (236135), 1069800 ms
[11:25:53] scan: chap 16 c=15->15, b=1698076->1826069 (127994), 367324 ms
[11:25:53] scan: chap 17 c=16->16, b=1826070->1906831 (80762), 309385 ms
[11:25:53] scan: chap 18 c=17->17, b=0->3 (4), 76 ms
[11:25:53] scan: aspect = 0
[11:25:53] scan: scanning title 3
Title 3 与 Title 2 相似,Title 5 与 Title 1 相似