我想从下面代码中的字符串中获取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;
}
答案 0 :(得分:1)
通过添加?来实现*懒惰?之后。
还有其他选择,我建议你阅读这篇文章:
http://www.regular-expressions.info/repeat.html
特别是“懒惰的替代”条款。
答案 1 :(得分:1)
试试这个:
Regex sRgx = new Regex("flashvars=\"(.*?)\"", RegexOptions.Multiline);
?
使正则表达式匹配最短的匹配,否则。*将紧缩到字符串的末尾。