Доброго времени суток. Регулярки изучаю недавно и у меня несколько вопросов:
Ссылка находится в буфере обмена, далее она попадает в программу и если есть совпадения с 1 из шаблонов, то с полученным текстом выполняются какие-то действия.
Причём для каждой ссылки свои.
Вопрос даже не в том как составить выражение, а как его сделать
нормальным. Имеется ввиду не только синтаксис c++ (только не говорите, что везде всё абсолютно одинаковое), но и правильным образом.
До этого писал на autoit, там всего 2) команды для регулярок: найти и заменить. Соответственно правила свои, но в CBuilder немного всё по-другому. Читал много, смотрел примеры, но так ничего толком не нашел (при всём обилии информации).
Касательно кода накопал сие:
TRegEx* re;
if(re->IsMatch(input, patt))
{
TMatch m;
m = re->Match(input,patt);
Edit3->Text = m.Groups[1].Value;
}
Ну и собственно всё. Без правильных шаблонов даже и непонятно лучше группы тянуть или как-то ещё делать? Потом нужно разбираться с классами.
Выделил нужные подстроки жирным:
VK
MYVI
MYVI - строка из браузера, причем иногда нужная часть может начинаться на -_, иногда просто -. То есть ...tv/watch/название-_символы или .../название-символы
_ttp://www.myvi.ru/watch/[название-ролика-англ-буквами--]-[любые символы]
MYVI (не помню где его взять и вроде он [код] отличается от браузерной ссылки)
_ttp://myvi.ru/ru/videodetail.aspx?video=[символьный код ролика]&еще_какой-то_параметр=значение
Sibnet
Sibnet - видео из рубрик (строка браузера)
_ttp://video.sibnet.ru/rub/[название_рубрики]/video123456789[название, вобщем не важно]
Rutube - после цифр иногда бывает слэш .../" frameborder=...
Rtutube - ссылко из браузера, (для приличия в конце \/?)
_ttp://rutube.ru/video/[символьный код видео]/
Youtube
P.S. Заменить скажем https на http не проблема (бывает в вк)