Я попытался использовать регулярное выражение C++ 11, но не удалось даже в тривиальных примерах. Со стороны, кажется, только сравнивать строки, например:Странные результаты при использовании C++ 11 regexp с gcc 4.8.2 (но работает с Boost regexp)
std::regex_match(std::string{""}, std::regex{"a?"}) // false (???)
std::regex_match(std::string{"a?"}, std::regex{"a?"}) // true (???)
В отличие от этого, библиотека регулярных выражений подпиточного ведет себя, как я ожидал бы:
boost::regex_match(std::string{""}, boost::regex{"a?"}) // true (OK)
boost::regex_match(std::string{"a?"}, boost::regex{"a?"}) // false (OK)
я тестировал с GCC 4.8.2 и clang 3.4 (также используя библиотеку STL GCC). Либо библиотека сломана, либо я не понимаю синтаксис, определенный стандартом C++ 11.
http://gcc.gnu.org - НКУ "СЕЙЧАС регулярное выражение реализованного Должен прийти с GCC 4.9 :)." поддержка регулярных выражений очень новая. – chris
Я думаю, проблема в грамматике. – deeiip
clang с [своей собственной библиотекой] (http://libcxx.llvm.org/) дает true, а затем false, то же, что и boost.regex. GCC 4.8.2 не поддерживает регулярное выражение, вам нужно 4.9. – Cubbi