我想在C++正則表達式,這裏的範圍是一些代碼現在匹配的文本與C++ 11點的正則表達式
#include <iostream>
#include <regex>
int main (int argc, char *argv[]) {
std::regex pattern("[a-z]+", std::regex_constants::icase);
std::regex pattern2("excelsior", std::regex_constants::icase);
std::string text = "EXCELSIOR";
if (std::regex_match(text, pattern)) std::cout << "works" << std::endl;
else std::cout << "doesn't work" << std::endl;
if (std::regex_match(text, pattern2)) std::cout << "works" << std::endl;
else std::cout << "doesn't work" << std::endl;
return 0;
}
,從我的理解,這兩個比賽應該輸出works
,但第一個輸出doesn't work
,而第二個按預期輸出works
。爲什麼?
都應輸出「作品」。我測試了它。 – chathux
它看起來應該可以工作,但在這個在線編譯器上失敗:http://coliru.stacked-crooked.com/a/1fc8753739732402 – Buddy
[Coliru上一套更全面的測試](http://coliru.stacked- crooked.com/a/fd647a5e2cc1f712) – jaggedSpire