Ваша проблема "/ мс". Вы пытаетесь указать пару флагов регулярных выражений, но C # определяет флаги не так, как php / perl (ваш тестер регулярных выражений, вероятно, проверяет регулярные выражения, предназначенные для этих языков. Я предлагаю Expresso (это бесплатно) для работы с. NET регулярные выражения). Измените свой шаблон на это:
string pattern = @"<p style=""float: left; margin-right: 20px; height: 300px;"">(.*)</p>";
(также обратите внимание, что я добавил атрибут "height", чтобы он совпадал - это просто опечатка?)
И твое регулярное выражение для этого:
if( Regex.Match(page.Content, pattern,RegexOptions.Multiline | RegexOptions.Singleline).Success)
И это должно работать.
[EDIT]
Да, и исправление метода замены:
page.Content = Regex.Replace(page.Content, pattern, "<div class=\"contentimage\" >$1</div>", RegexOptions.Multiline | RegexOptions.Singleline);