Форум программистов, компьютерный форум CyberForum.ru

поиск подстроки между разделителями - C++

Восстановить пароль Регистрация
 
karaulov2
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 59
27.01.2013, 20:32     поиск подстроки между разделителями #1

Не по теме:

нужна помощь



есть строка " 00.00 Name: [ id='TEXT' name...] "

мне нужно получить из этой строки TEXT


искал в интернете, но там векторы и т.п, я не знаю как с ними работать, есть ли вариант более простой?

(установлен boost , может быть оттуда что-нибудь можно использовать)



(Мне это нужно для создания парсера, построчное чтение файла уже нашел теперь нужно как-то парсить эти строки.)
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Даниил19
Сообщений: n/a
27.01.2013, 20:35     поиск подстроки между разделителями #2
вот функция поиска подстроки
C++
1
2
3
4
5
6
7
void search(char *slov)
    {
    if(strstr(st, slov)!=NULL)
        cout<<"naydeno\n";
    if(strstr(st, slov)==NULL)
        cout<<"slova nety";
    }
karaulov2
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 59
27.01.2013, 20:45  [ТС]     поиск подстроки между разделителями #3
мне не нужно искать просто подстроку, мне нужно найти подстроку между разделителями и эта подстрока почти всегда разного содержания.


то есть мне нужно найти подстроку между id=' и '

Добавлено через 6 минут
Цитата Сообщение от karaulov2 Посмотреть сообщение
есть строка " 00.00 Name: [ id='TEXT' name...] "

мне нужно получить из этой строки TEXT
(текст между id=' и ')
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
27.01.2013, 20:48     поиск подстроки между разделителями #4
boost/regex Поиск ссылок в html-файле
popelyuk
 Аватар для popelyuk
8 / 8 / 1
Регистрация: 04.12.2012
Сообщений: 130
27.01.2013, 20:51     поиск подстроки между разделителями #5
Цитата Сообщение от karaulov2 Посмотреть сообщение
мне не нужно искать просто подстроку, мне нужно найти подстроку между разделителями и эта подстрока почти всегда разного содержания.


то есть мне нужно найти подстроку между id=' и '
как-раз поиск подстроки и приведет тебя к TEXT, ведь чтобы найти это значение я так понимаю нужно сначала найти тег Name: не так ли? Так вот ищи этот тег после этого нужно пропустить n-е количество пробелов так как они возможно не фиксированые после этого найти открывающую скобку и т. д. пока не дойдём до открывающей однинарной кавычки после которой, до символа следующей такой кавички и будет твой TEXT.
karaulov2
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 59
27.01.2013, 20:55  [ТС]     поиск подстроки между разделителями #6
Цитата Сообщение от popelyuk Посмотреть сообщение
как-раз поиск подстроки и приведет тебя к TEXT, ведь чтобы найти это значение я так понимаю нужно сначала найти тег Name: не так ли? Так вот ищи этот тег после этого нужно пропустить n-е количество пробелов так как они возможно не фиксированые после этого найти открывающую скобку и т. д. пока не дойдём до открывающей однинарной кавычки после которой, до символа следующей такой кавички и будет твой TEXT.
нет, NAME постоянно меняется

00.00 - тоже всегда разное значение

остается только id=' текст какой-то '



возможно подойдет
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
27.01.2013, 20:58     поиск подстроки между разделителями #7
Можно еще использовать boost/spirit
http://blog.alno.name/ru/2008/09/par...h-boost-spirit
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
27.01.2013, 21:04     поиск подстроки между разделителями #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
#include <boost/regex.hpp>
 
 
int main() {
   std::string const text = "00.00 Name: [ id='TEXT' name...]";
   
   boost::smatch match;
   if (boost::regex_search(text, match, boost::regex("(?<=id=').*?(?=')"))) {
      std::cout << match.str() << std::endl;
   } else {
      std::cout << "No match" << std::endl;
   }
}
?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2013, 21:08     поиск подстроки между разделителями
Еще ссылки по теме:

C++ Поиск подстроки
Поиск подстроки между заданными символами C++
Поиск подстроки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
karaulov2
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 59
27.01.2013, 21:08  [ТС]     поиск подстроки между разделителями #9
Всем спасибо, проблема решена.
Yandex
Объявления
27.01.2013, 21:08     поиск подстроки между разделителями
Ответ Создать тему
Опции темы

Текущее время: 05:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru