關(guān)于正則表達(dá)式的gcc 4.8或更早的bug嗎?我試圖在C ++ 11代碼中使用std :: regex,但看起來支持有點(diǎn)兒錯(cuò)誤。一個(gè)例子:#include <regex>#include <iostream>int main (int argc, const char * argv[]) {
std::regex r("st|mt|tr");
std::cerr << "st|mt|tr" << " matches st? " << std::regex_match("st", r) << std::endl;
std::cerr << "st|mt|tr" << " matches mt? " << std::regex_match("mt", r) << std::endl;
std::cerr << "st|mt|tr" << " matches tr? " << std::regex_match("tr", r) << std::endl;}輸出:st|mt|tr matches st? 1st|mt|tr matches mt? 1st|mt|tr matches tr? 0當(dāng)使用gcc(MacPorts gcc47 4.7.1_2)4.7.1編譯時(shí),使用g++ *.cc -o test -std=c++11g++ *.cc -o test -std=c++0x要么g++ *.cc -o test -std=gnu++0x此外,如果我只有兩種替代模式st|mt,那么正則表達(dá)式效果很好,例如,看起來最后一種模式由于某些原因而不匹配。該代碼適用于Apple LLVM編譯器。有關(guān)如何解決問題的任何想法?更新一個(gè)可能的解決方案是使用組來實(shí)現(xiàn)多個(gè)替代方案,例如(st|mt)|tr。
- 3 回答
- 0 關(guān)注
- 2657 瀏覽
添加回答
舉報(bào)
0/150
提交
取消