У меня ошибка в моем простом REGEX. Я пытался написать несколько простых регулярных выражений на C++, используя std::regex
. Вот мой код до сих пор.REGEX: как соответствовать синтаксису?
#include <iostream>
#include <regex>
#include <string>
int main(void)
{
std::string str = "Hello world";
std::regex rx("\w+\s\w+"), rx2("ello");
std::cout << std::boolalpha << std::regex_match(str.begin(), str.end(), rx) << "\n";
std::cout << std::boolalpha << std::regex_search(str.begin(), str.end(), rx2) << "\n";
return 0;
}
Эта программа должна печатать (по обучающей)
true
true
но он печатает
false
false
Где я делаю ошибку? Заранее спасибо.
Примечание: Я использую g++ -std=c++0x %file.cpp% -o %file%
, если это помогает
вы используете GCC? Если это так, переключитесь на boost.regex, потому что '' на самом деле не реализовано. –
Работает с clang ++/libC++, а также с g ++/libstdC++. Оба не печатают «false false». – kennytm
Разве вам не нужно было бежать от косой черты? – Joey