我試圖++改造在C文件使用正則表達式,一些regex_error保持上發生的, 這裏是代碼:
std::ifstream inf(in);
std::ofstream outf(out);
try{
std::regex line_regex("[[:alnum:]]");
std::string line;
while(std::getline(inf,line))
{
if(std::regex_match(line,line_regex))
outf<<line<<std::endl;
}
錯誤消息是:
terminate called after throwing an instance of 'std::regex_error'
what(): regex_error
順便說一下,我在linux x64上使用gcc 4.7.2。
gcc版本4.6.1只對std :: regex有部分支持,我不知道它是否已經在4.7.0版本中得到了修復,第二個想法我認爲他們還沒有修復它檢查正則表達式這裏http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011 – Chipmunk
我在4.6.2上試過'std :: regex'並且無法讓它工作。取而代之的是包裹PCRE。我認爲Perl正則表達式語法是最好的和最具表現力的,而PCRE是一個非常穩定的歷史悠久的庫。 –