我正在尝试在C ++中使用正则表达式,以便从文件中获取一些有趣的信息。但由于某种原因,std :: regex_search()函数不会从字符串返回任何内容。即使我使用正则表达式来读取整行,它也不会返回任何内容。
这是我的代码:
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <regex>
int main()
{
std::ifstream infile;
std::regex ex("\(.*\)");
std::string s;
std::smatch result;
infile.open("thefile.txt");
if(infile.is_open())
{
std::string line;
while (std::getline(infile, line))
{
std::cout<<line<<std::endl;
std::regex_search(s, result, ex);
for (auto x:result) std::cout << x << " ";
}
infile.close();
}
else
std::cout<<"FAIL\n";
return 0;
}
我逐行读取文件并将所有内容写到我使用regex_search()函数的字符串上。该文件如下所示:
0cup,0aup,+,0,(0,0,0,0),(0,0,0,0);
0cdown,0adown,+,0,(0,0,0,0),(0,0,0,0);
我不知道,我做错了什么。我正在使用的正则表达式适用于Python。