Hejka, mam problem - otóż muszę po raz pierwszy użyć wyrażeń regularnych…
Właściwie to problem dotyczy też po części biblioteki Boost ponieważ to z niej korzystam. Wrzucam mój kod:
#include
#include
#include
int main() {
boost::regex rep("pieczarki(.*)zupa");
std::string line="pieczarkigrzybowazupa";
boost::sregex_iterator begin(line.begin(), line.end(), rep);
boost::sregex_iterator end;
for(;begin!=end;++begin) std::cout << (*begin)[1] << std::endl << std::endl;
std::cout << std::endl;
std::system("pause");
return 0;
}
Zaznaczam że wyrażenie pisałem kompletnie na pałę ponieważ się na nich nie znam.
Problem polega na tym, że przy stringu takim jak jest w kodzie - wszystko działa i program wypisuje na ekran “grzybowa”, ale gdy stringa trochę skomplikuje np. “pieczarkigrzybowazupa pomidor pomidor pieczarkipomidorowazupa” to program wariuje, i zamiast wypisać “grzybowa pomidorowa” wypisuje kompletne bzdury. Proszę o pomoc