使用 C++,假设我有一个文件,并且我正在寻找一个关键字,但我不希望它的相邻字符是 aa-z
或0-9
.
假设我想在这样的文件中查找关键字U
:
U 1.2;
Under 2.3;
abcdUefg;
我希望第一行出现,而不是第二行或第三行。但请注意以下内容也可以。
"(U|B|tau)"
因为这里U
只有一个词。
关键是,我希望我正在寻找的关键词是一个独立的词,而不是这个词的一部分。最好的方法是什么?
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
string line;
vector<string> lines;
ifstream myfile ("FILE");
if (myfile.is_open())
{
while (myfile.good())
{
getline(myfile,line);
lines.push_back(line);
}
myfile.close();
}
else
{
cout << "Unable to open file";
}
for (unsigned i = 0; i < lines.size(); ++i)
{
if (lines[i].find("keyName") != string::npos)
{
printf("Key found!\n");
}
}
myfile.close();
return 0;
}