Regex 在找到第一个字符串后,如何生成正则表达式来查找字符串的第一个实例
我试图解析ffmpeg的输出字符串,以获得视频流的宽度和高度 内容是这样的Regex 在找到第一个字符串后,如何生成正则表达式来查找字符串的第一个实例,regex,Regex,我试图解析ffmpeg的输出字符串,以获得视频流的宽度和高度 内容是这样的 Input #0 ... Stream #0:0(eng): Video: blah blah blah, 1024x768 Output #0 ... Stream #0:0(eng): Video: blah blah blah, 800x600 我希望可靠地捕获1024x768(而不是800x600) 我发现了一些让我接近的东西: ((\d{2,4})x(\d{2,4})) 这将匹配输出中的1024
Input #0
...
Stream #0:0(eng): Video: blah blah blah, 1024x768
Output #0
...
Stream #0:0(eng): Video: blah blah blah, 800x600
我希望可靠地捕获1024x768(而不是800x600)
我发现了一些让我接近的东西:
((\d{2,4})x(\d{2,4}))
这将匹配输出中的1024x768和800x600。
我只想要第一个,我想确保返回的始终是输入#0部分中的一个
我想要的是,“Regex,给我找到单词Video后面的numberxnumber的第一个模式,它位于单词Stream#0后面”
我找遍了所有地方,找到了一些关于反向引用的链接,但我无法让它工作。这有用吗
(Input #0).*?(\d+x\d+)
使用第二个捕获组中的值。这似乎需要在正则表达式中填充很多内容。您可以执行类似于
^Input#0.+(\d{2,4})x(\d{2,4})$
的操作,假设点匹配所有行,并且^
和$
匹配行的开始/结束(并且它和下一个“节头”之间肯定有一个解析:Output\0
)。但这似乎更适合逐行分析。