我需要找到数字、输入和输出时间码点以及文本的所有行。
9
00:09:48,347 --> 00:09:52,818
- Let's see... what else she's got?
- Yea... ha, ha.
10
00:09:56,108 --> 00:09:58,788
What you got down there, missy?
11
00:09:58,830 --> 00:10:00,811
I wouldn't do that!
12
00:10:03,566 --> 00:10:07,047
-Shit, that's not enough!
-Pull her back!
我目前正在使用这种模式,但它忘记了所有两行文本
(?<Order>\d+)\r\n(?<StartTime>(\d\d:){2}\d\d,\d{3}) --> (?<EndTime>(\d\d:){2}\d\d,\d{3})\r\n(?<Sub>.+)(?=\r\n\r\n\d+|$)
任何帮助将非常感激。
我认为正则表达式有两个问题。首先是.
接近尾声时(?<Sub>.+)
不匹配换行符。所以你可以将其修改为:
(?<Sub>(.|[\r\n])+?)
或者你可以指定RegexOptions.Singleline
作为正则表达式的选项。该选项唯一做的就是使点匹配换行符。
第二个问题是.+
匹配尽可能多的行。你可以让它变得非贪婪,例如:
(?<Sub>(.|[\r\n])+?(?=\r\n\r\n|$))
这匹配以空行或字符串末尾结尾的最少量文本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)