Я хочу проанализировать ссылки в стиле уценки, но у меня возникают проблемы с сопоставлением ссылок в стиле ссылок. Как этот: [id]: http://example.com/ "Optional Title Here"
Мое регулярное выражение получает идентификатор и URL-адрес, но не заголовок.
Вот что у меня есть:
/\[([a-zA-Z0-9_-]+)\]: (\S+)\s?("".*?"")?/
Я просматриваю и добавляю ссылки в хеш-таблицу. идентификатор в качестве ключа, а значение — это экземпляр класса, который я создал под названием LinkReference
, который содержит только URL-адрес и заголовок. Если проблема не в моем регулярном выражении, а в моем коде, добавляющем совпадения в хеш-таблицу, вот мой код и для этого:
Regex rx = new Regex(@"\[([a-zA-Z0-9_-]+)\]: (\S+)\s?("".*?"")?");
MatchCollection matches = rx.Matches(InputText);
foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
string title = null;
try
{
title = groups[3].Value;
}
catch (Exception)
{
// keep title null
}
LinkReferences.Add(groups[1].Value, new LinkReference(groups[2].Value, title));
}