Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> улучшение regex, boost_regex 
:(
    Опции темы
niro
Дата 7.11.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Имеется небольшой regex для выковыривания ссылок: 
Код

regex ahref("<\\s*A\\s+[^>]*href\\s*=\\s*\"([^\"]*)\"", boost::regex::normal | boost::regbase::icase);

и принимает 
Код
<a href="url">...</a>

Но если имеется html вида
Код

...
<a href=some.url>...</a>
<a href = some.url>...</a>
...

То он его не видит. Сам я плохо разбираюсь в regex, гугл немного помог с данной темой указав на 
Код

href\s*=\s*(?:(?:\"(?<url>[^\"]*)\")|(?<url>[^\s*] ))

который по идее может работать как мне необходимо, но увы boost его не может осилить. 
Спасибо
PM MAIL   Вверх
Alek86
Дата 7.11.2007, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



проверить не могу, ибо либ буста у меня нету, но попробуй строку
"<\\s*A\\s+[^>]*href\\s*=\\s*\"([^\"]*)\"" замени на 
"<\\s*A|a\\s+[^>]*href\\s*=\\s*\"([^\"]*)\""

а, вообще, если ты regex хоть чуток знать хочешь, вот тебе ключ к расшифровке:
http://boost.org/libs/regex/doc/syntax_perl.html#Perl


--------------------
user posted image    user posted image
PM MAIL   Вверх
niro
Дата 7.11.2007, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Alek86, Увы, но ваш пример не работает.
PM MAIL   Вверх
Alek86
Дата 7.11.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



был бы буст откомпиленный, я б помог. а так - звыняй, лень компилировать smile


--------------------
user posted image    user posted image
PM MAIL   Вверх
Alek86
Дата 7.11.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



держи, вроде рабочая, хотя не на 100%

"<\\s*(A|a)\\s+[^>]*?href\\s*=\\s*\"?([^(\\s|>|\")]*)"

pressive хорош тем, что его компилить не надо smile


--------------------
user posted image    user posted image
PM MAIL   Вверх
niro
Дата 7.11.2007, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



действительно не на 100% но все же, Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.