2012-01-02 2 views
2

Я хочу получить flashvars из строки, которая находится в коде ниже. Но в конце кода соответствующее значение имеет другие атрибуты, такие как pluginspage. Как я могу это исправить? Я не прав с моим регулярным выражением?Regex for getting flashvars

Вот мой код:

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; 
} 

ответ

1

Попробуйте с этим:

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

? делает регулярное выражение для поиска кратчайшего матча, в противном случае * будет грызть everithing до конца строки..

+0

Его рабочие благодарности ... – CodeRunner

1

Сделать * ленивым, добавив? после этого.
Есть и другие альтернативы, я предлагаю вам прочитать эту статью:
http://www.regular-expressions.info/repeat.html
Специально пункт «Альтернатива лжи».