Я думаю, вы смешиваете синтаксис регулярных выражений .NET с PHP. PHP требует, чтобы вы использовали разделитель регулярных выражений в дополнение к кавычкам, которые требуются строковому литералу C #. Например, если вы хотите сопоставлять «foo» без учета регистра в PHP, вы должны использовать что-то вроде этого:
'/foo/i'
... но C # не требует дополнительных разделителей регулярных выражений, что означает, что он не поддерживает стиль / i для добавления модификаторов соответствия (это было бы в любом случае избыточно, так как вы также используете RegexOptions.IgnoreCase
флаг). Я думаю, это то, что вы ищете:
@"show_name=(.*?)&show_name_exact=true"">(.*?)<"
Обратите внимание, как я избежал внутренней кавычки, используя другую кавычку вместо обратной косой черты. Вы должны сделать это таким образом, используете ли вы старомодный строковый литеральный синтаксис или дословные строки C # с начальным '@' (что настоятельно рекомендуется для написания регулярных выражений). Вот почему вы получили неопределенную строковую ошибку.