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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pcrecpp 
:(
    Опции темы
box
Дата 8.4.2015, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



всем привет!
помогите разобрать строку на подстроки
строка:
03/21/2015-16:02:33.468684  [Drop] [**] [1:2013057:3] ET WEB_SERVER Inbound PHP User-Agent [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 67.22.140.100:40717 -> 10.10.50.100:80
надо взять все что между [**]...........[**] и так же вырезать 67.22.140.100:40717 -> 10.10.50.100:80
подскажите регулярку что бы ее можно было применить так:
Код

  pcrecpp::RE re("/\[\*\*\](\\w+)\[\*\*\]/g");//вот так вообще ничего не находит  
       if (re.error().length() > 0) {
          cout << "PCRE compilation failed with error: " << re.error() << "\n";
       }
       if (re.FullMatch(data, &s))
       cout << s  << "\n";

PM MAIL   Вверх
rudolfninja
Дата 8.4.2015, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

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



Я не уверен, но регулярка должна быть такой: 
Код

\[\*\*\](.*)\[\*\*\].*\{TCP\}(.*)

По крайней мере, этот сайт выдает правильные результаты по такой регулярке и заданной строке.
PM MAIL Skype   Вверх
xvr
Дата 8.4.2015, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



2 ТС: Не забудьте удвоить все '\' в исходной С++ строке. Обратный слэш имеет для самого С++ компилятора вполне особое значение, и в своем чистом виде в конечное содержимое строки не попадает

PM MAIL   Вверх
kemiisto
Дата 8.4.2015, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(xvr @  8.4.2015,  11:39 Найти цитируемый пост)
2 ТС: Не забудьте удвоить все '\' в исходной С++ строке.

Или использовать raw string literalsmile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
box
Дата 8.4.2015, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



не работает 
Код

  pcrecpp::RE re("\\[\\*\\*\\](.*)\\[\\*\\*\\].*\\{TCP\\}(.*)");  

и так тоже
Код

  pcrecpp::RE re("^.*\\[\\*\\*\\](.*)\\[\\*\\*\\].*\\{TCP\\}(.*)$");  
 
не работает ни одна перл совместимая регулярка!
что же оно хочет?

Это сообщение отредактировал(а) box - 8.4.2015, 15:34
PM MAIL   Вверх
rudolfninja
Дата 8.4.2015, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

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



Попробуйте как посоветовал kemiisto.
Цитата(kemiisto @  8.4.2015,  13:52 Найти цитируемый пост)
Или использовать raw string literal.

То есть так:

Код

pcrecpp::RE re(R"\[\*\*\](.*)\[\*\*\].*\{TCP\}(.*)");  


Это сообщение отредактировал(а) rudolfninja - 8.4.2015, 17:04
PM MAIL Skype   Вверх
box
Дата 8.4.2015, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



suric.cpp:333:18: error: invalid character '\' in raw string delimiter
suric.cpp:333:1: error: stray ‘R’ in program

PM MAIL   Вверх
box
Дата 8.4.2015, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вопрос решен:
Код

  pcrecpp::RE re("^.*\\[\\*\\*\\](.*)\\[\\*\\*\\].*\\{TCP\\}(.*)$", pcrecpp::UTF8());  

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

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

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

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

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


 




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


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

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