我试图从.net输出的字符串中获取视频的尺寸,我试图通过正则表达式获得的尺寸基本上是这样的1080x960 320x264等等。
我已经找到了很多关于这个主题的文章,但这些都不适合我,不幸的是,我不是正则表达式专家,所以我不能编辑他们的代码。我试图编辑但无法工作的代码看起来像这样,如果它能给你任何启示的话;
Match c = Regex .Match (ffmpegOutputString,"\\s(\\d+)[xX](\\d+)\\s");
int w=int.Parse ( c.Groups[1].Value );
int h=int.Parse ( c.Groups[2].Value );我需要解析的字符串是;
Video: wmv3 (Main), yuv420p, 360x264, 400 kb/s, PAR 1:1根据我的基本正则表达式知识,它对我来说似乎还可以,但它不能获取任何东西,即使我给它一个空字符串作为输入,结果也是一样的,c.count是1,值是空字符串。
如有任何帮助,我们不胜感激!谢谢。
发布于 2011-07-22 20:30:36
对于需要解析的字符串,360x264后面紧跟着一个逗号。您的正则表达式是"\\s(\\d+)[xX](\\d+)\\s"。\\s匹配空格字符,如空格或制表符。尝试从正则表达式中删除尾随的\\s。
发布于 2011-07-22 20:31:55
它不匹配的原因是因为开头和结尾的\s。您的解析字符串在前面有一个空格,但在末尾没有,所以它不匹配。
此外,使用( \d )而不是\d会导致单个数字匹配,因此我删除了paren。
尝试使用这个正则表达式:\d+xX\d+
我在RegExLib上测试了它,它是使用正则表达式的一个很好的参考。
https://stackoverflow.com/questions/6789908
复制相似问题