Więc mój profesor dał mi pracę z regex w C++.Skompiluj i wyrecytuj w C++ używając eclipse
Więc próbowałem napisać mój kod w czasie zaćmienia (używam linuxa (ubuntu 12.04)).
więc wziąłem kod:
// regex_search example
#include <iostream>
#include <string>
#include <regex>
int main()
{
std::string s ("this subject has a submarine as a subsequence");
std::smatch m;
std::regex e ("\\b(sub)([^ ]*)"); // matches words beginning by "sub"
std::cout << "Target sequence: " << s << std::endl;
std::cout << "Regular expression: /\\b(sub)([^ ]*)/" << std::endl;
std::cout << "The following matches and submatches were found:" << std::endl;
while (std::regex_search (s,m,e)) {
for (auto x:m) std::cout << x << " ";
std::cout << std::endl;
s = m.suffix().str();
}
return 0;
}
Jak widać jest to prosty kod do pracy z regex.
więc staram się go zbudować i Zaćmienie daje mi błąd:
Type 'smatch' could not be resolved
a ponadto:
Type 'std::regex' could not be resolved
czym polega problem?
Próbowałem dodać flagę -std = C++ 0x w odpowiednim miejscu (właściwości-> c/C++ kompilacji -> Różne) i nic się nie dzieje.
Może robię to źle?
Może muszę dodać link do biblioteki jak w pthread?
Jaka wersja GCC są uruchomione? – Nick
Prawdopodobnie używasz gcc 4.7.2 (lub może wcześniej) z tą wersją Ubuntu? Wyrażenia regularne nie są implementowane w tej wersji. (Nie jestem pewien, jak daleko się teraz znajdują. Ostatnie dowody, które zobaczyłem w związku z jakąkolwiek działalnością, to jakieś niejasne komentarze na liście dyskusyjnej w styczniu). – BoBTFish
@Nick I thing Używam wersji 4.7.1 –