Using regular expressions in C# to adjust the width & height of an embedded YouTube movie
In order to get a YouTube movie to nicely fit in the page layout, i had to change the width and height properties in the default YouTube embed-code.
Here’s the code that did the job:
string youTubeObjectEmbedCode = "<object width=\"425\" height=\"349\"><param name=\"movie\" value=\"http://www.youtube.com/v/YIoowHIpUT0&hl=en&fs=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><embed src=\"http://www.youtube.com/v/YIoowHIpUT0&hl=en&fs=1\" type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" width=\"425\" height=\"349\"></embed></object>";
Regex YoutubeEmbedCodeAdjuster = new Regex("((?<front>(?<attrib>width|height)(\\=)(\\\"))(?<size>[0-9]{1,})(?<back>\\\"))", RegexOptions.IgnoreCase);
MatchEvaluator SizeReplacer = new MatchEvaluator(ReplaceSize);
newYouTubeObjectEmbedCode = YoutubeEmbedCodeAdjuster.Replace(youTubeObjectEmbedCode, SizeReplacer);
public string ReplaceSize(Match m)
{
int newsize = 0;
if (m.Groups["attrib"].Value.ToLower() == "width")
newsize = 490;
else
newsize = 396;
return m.Groups["front"].Value + newsize + m.Groups["back"].Value;
}
New version of the regular expression to find all attributes
(?<tagname>[^\s]*)="(?<tagvalue>[^"]*)"
you save my life….
Thanks
May 13th, 2010 at 10:59 pm