Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Регулярные выражения и boost  (Прочитано 33244 раз)
0 Пользователей и 1 Гость смотрят эту тему.
WDMclient
Гость
« Ответ #30 : 03-03-2010 14:13 » new

Такое впечатление, вроде я попросил программу за меня на халяву написать, или никто boost'ом не польззовался. Но ладно, программу написал без использования boost и, собственно, регулярных выражений. А с такой помощью легче написать свой regex.h. Тем более, в boost, чтоб использовать, всего-лишь, регулярные выражения, нужно штук 100 h-файлов - зачем делять такую сложную структуру, пока не разобрался, но первые впечатления не очень. Улыбаюсь

P.S. В дальнейших ответах не нуждаюсь.
P.S.S. В будущем обязательно напишу решение этой проблеммы.

Регулярные выражения в boost   делают это как это делает чемпион по обработке
текста  язык Perl.  Там даже опция есть такая  "format_perl" (она же и по умолчанию)

Так что если работал в Perl с регулярами то boost на 98% тоже самое.
Конечно если ты не знаком с Perl то придется долго шелушить мануалы и тыкать пальцем.


в общем произвело  на меня сильна благоприятное впечатление , и возвращаться ко
всяким string  отпало , плюс использование BOOST сильно повышает читабельность кода.

А да ,  при компайле либов  попотел немного , пока не нашел варинта компиляции такой

bjam  variant=release threading=multi link=static runtime-link=static

В разделе libc есть каталоги build (для каждой либы) туда нужно скопировать bjam.exe
и выполнить выше означеный строк.
Все либы не надо билдить , а только те которые потребует компилятор по ходу.


Видно Inkognito ты не разобрался раз не смог отписать вовремя.


Ты пишешь что "В дальнейших ответах не нуждаюсь" -
                 это потому что ты  неопытный б...
« Последнее редактирование: 03-03-2010 14:23 от WDMclient » Записан
yudjin
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #31 : 14-07-2010 13:18 » 

Добрый день. Пытаюсь осваивать регулярные выражения. Написал такое выражение, находящее домен в строке:
Код:
boost::regex FindIP_exp(".*http://(\\w+[^/]*)");
Например, если будет строка " ывфыва http://images.amazon.com/imagesыва " - выводит images.amazon.com
Но вот беда, если в строке будет два значения, удовлетворяющих шаблону, то берется последнее. Как указать, что выражение может встречаться неограниченное число раз, и каждое надо запомнить?

И еще - правильно ли я понимаю написанный код:

.* -           любые символы, предшевствующие http://
http://
(              - сохраняет
\\w+        - последовательность любых символов,
[^/]         - пока не встретится /
*             -  ЛЮБЫХ


Вот... туговато пока с регэкспами
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 14-07-2010 15:14 » 

И еще - правильно ли я понимаю написанный код:

.* -           любые символы, предшевствующие http://
http://
(              - сохраняет
\\w+        - последовательность любых символов,
[^/]         - пока не встретится /
*             -  ЛЮБЫХ
)  

Вот... туговато пока с регэкспами

(              - группировка.
\\w+        - символы класса [A-Za-z0-9_] в количестве 1+.
[^/]*       - символы класса "все символы, исключая слеш", в количестве 0+.
)

Группировка зачастую используется для "захвата" последовательности символов, соотвествующих шаблону внутри группы.

Шаблон некорректный, т.к. в именах доменов встречается минус, но не встречается подчеркивание.
Я бы сделал такой: "http://([-a-zA-Z0-9]+(?:\\.[-a-zA-Z0-9]+)+)/".
Как управлять захватом - читай описание API.
« Последнее редактирование: 15-07-2010 05:28 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines