Я создаю почтовую систему, в которой я буду отмечать внешние изображения, Flash, SL и т. Д. С помощью [image: http://anything/anyimage.jpg] или [silverlight: http://anothersite/ilovesilverlight.xap] и т. Д.). Я буду рендерить теги объектов для HTML после найти ссылки. Я застрял с regex, я новичок в regex, поэтому, пожалуйста, будьте конструктивны, отвечая, что не так с этим:
if (text.Contains("[flash:"))
{
rgx = new Regex(@"\[flash:(.^\])\]");
text = rgx.Replace(text, (m =>
{
string val = m.Groups[1].Value;
FlashRenderer ir = new FlashRenderer(val);
return ir.Render();
}));
}
Забудьте о FlashRenderer
и о том, что он возвращает, моя проблема с соответствием.
Я попал в блок if, но не могу найти ни одного экземпляра, соответствующего регулярному выражению, хотя у меня есть. У меня может быть несколько внешних объектов в одном посте, поэтому я пытаюсь убрать символ ]
в совпадении. Если я не отрицаю ]
, не возникает проблем, если у меня есть только один объект и нет других символов ]
, но если у меня больше ]
, то все будет испорчено, так как первое регулярное выражение соответствует последнее вхождение ]
на весь пост и возвращение остальной части всего поста в качестве предполагаемого «URL».