Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
karaulov2
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 59
#1

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

27.01.2013, 20:32. Просмотров 1084. Ответов 8
Метки нет (Все метки)

Не по теме:

нужна помощь



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

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


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

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



(Мне это нужно для создания парсера, построчное чтение файла уже нашел теперь нужно как-то парсить эти строки.)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2013, 20:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос поиск подстроки между разделителями (C++):

Поиск подстроки между заданными символами - C++
Написал код на C++, он ищет символы между символами введёнными в Edit и ".txt" . Всё вроде бы работает,но он ищет символы всего лишь один...

Мне надо сделать поиск последнего вхождения подстроки s1 в строку s(с функцией LastPos, не strstr). В этом коде просто вхождение подстроки в строку. - C++
#include <stdio.h> int count_of_substrings(string s, string s1){ int start = 0; int count = 0; int pos = 0; ...

Поиск подстроки - C++
Подскажите, как в тексте типа этого - "101011110101001001001111010101010101100110", найти определенную комбинацию...

Поиск подстроки - C++
Всем привет. Вот такое вот дали задание: найти все вхождения данного образца в строке. При этом надо указать индекс в тексте с которого...

Поиск подстроки - C++
Всем добрый день, подскажите хорошая ли идея искать наличие подстроки таким способом, 8 строка. #include <iostream> #include <string> ...

Поиск подстроки - C++
Почему при поиске вхождения подстроки в строку если я ввожу несколько слов, то компилятор разделяет строку на слова и ищет вхождение в них?...

8
Даниил19
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=' и ')
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
27.01.2013, 20:48 #4
boost/regex Поиск ссылок в html-файле
1
popelyuk
8 / 8 / 1
Регистрация: 04.12.2012
Сообщений: 130
27.01.2013, 20:51 #5
Цитата Сообщение от karaulov2 Посмотреть сообщение
мне не нужно искать просто подстроку, мне нужно найти подстроку между разделителями и эта подстрока почти всегда разного содержания.


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

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

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



возможно подойдет
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,055
Записей в блоге: 17
27.01.2013, 20:58 #7
Можно еще использовать boost/spirit
http://blog.alno.name/ru/2008/09/parsers-in-cpp-with-boost-spirit
1
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 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;
   }
}
?
5
karaulov2
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 59
27.01.2013, 21:08  [ТС] #9
Всем спасибо, проблема решена.
0
27.01.2013, 21:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2013, 21:08
Привет! Вот еще темы с ответами:

Поиск подстроки - C++
Эта программа написана чтобы искало буквы....а как написать чтобы искало количество слова например &quot; kag &quot; #include&lt;iostream.h&gt; ...

Поиск подстроки - C++
Привет всем. Я пишу программу для поиска подстроки. Если подстрока есть в строке, вывести YES. Иначе - NO. Вот код(еще не дописанный) ...

Поиск подстроки - C++
Как считать из файла поочерёдно подстроку и искать её в строке? И почему то в итоге не корректно выводится результат 2 -х значений. Вот...

Поиск подстроки - C++
Народец))) Подскажите пожалуйста новичку,как найти подстроку в строке?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru