获取flashvars的正则表达式

时间:2012-01-02 10:27:34

标签: c# regex

我想从下面代码中的字符串中获取flashvars。 但在代码的末尾,匹配的值带有其他属性,如pluginspage。 我该如何解决? 我的正则表达式错了吗?

这是我的代码:

string source = "<embed src=\"http://godtube.com/flvplayer.swf\" FlashVars=\"videoThumb=http://www.godtube.com/thumb/1_30772.jpg&flvPath=http://www.godtube.com/flvideo1/47/30772.flv\" wmode=\"transparent\" quality=\"high\" width=\"330\" height=\"270\" name=\"flv_demo\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" /></embed>";
Regex sRgx = new Regex("flashvars=\"(.*)\"", RegexOptions.Multiline);
Match regexMatch = sRgx.Match(source);
if (regexMatch.Success)
{
    string matched = regexMatch.Groups[1].Value;
}

2 个答案:

答案 0 :(得分:1)

通过添加?来实现*懒惰?之后。
还有其他选择,我建议你阅读这篇文章:
http://www.regular-expressions.info/repeat.html
特别是“懒惰的替代”条款。

答案 1 :(得分:1)

试试这个:

Regex sRgx = new Regex("flashvars=\"(.*?)\"", RegexOptions.Multiline);

?使正则表达式匹配最短的匹配,否则。*将紧缩到字符串的末尾。