// regex_test.cpp
#include <iostream>
#include <boost/regex.hpp>
int main()
{
// правило поиска
boost::wregex exrp( L"(https?:\\/\\/[\\w\\-_]+(?>\\.[\\w\\-_]+)+"
L"(?>[\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#]))" );
boost::match_results<std::wstring::const_iterator> what;
// входная строка
std::wstring input = L"My homepage is http://jia3ep.blogspot.com";
// поиск
if( regex_search( input, what, exrp ) ) {
// ога, нашли что-то
std::wstring found( what[1].first, what[1].second );
// выводим
std::wcout << found << std::endl;
}
return 0;
}
// в Boost немного вещей требуют линковки и Regex — одна из них,
// поэтому в Ubuntu компилим этот пример так:
// g++ -lboost_regex regex_test.cpp
Данный код найдет и выдаст Веб-адрес в заданной строке. Как сравочник синтаксиса можно использовать MSDN (мне тут нравится табличка, но аналогов в сети полно), а поискать готовые выражения можно, например, тут (правда, по ссылке встречаются и неработающие примеры).
Бывают, конечно, примеры в жизни и посложнее, чем приведенный. Например, вот более 6Кб кода для проверки email адреса соответствию стандарту RFC822. Но, к счастью, этот пример уже написан и его можно взять и скопировать.