Yes, maybe by means of something like this:
grep -E '<iframe>.+<body>' file
where the .+ regexp means one or more occurrences of any single character. The problem is if it matches similar strings that you want to be ignored instead, so that you have to further refine your expression.
Moreover, take in mind that there are some applications specific for parsing HTML code. They manage tags in an easy and more robust way than a simple regular expression. Two examples are the HTML::Parser library in Perl or the HTMLParser module in Python, if you're experienced with these scripting languages.