我正在开发一个程序,该程序需要筛选一个 HTML/XML 垃圾缠身的 .txt 文件,以查找末尾有一个数字的特定模式。这种模式应该出现 10 次。模式如下:" <p class="wx-temp"> 93.
" 93 是一个温度读数,我最终要收集的是什么,但是,我找不到将 93 与字符串的其余部分隔离的方法,因为它会随着每一天的变化而变化该程序将理想地运行。我一直在尝试找到一种方法来定义一个不能为常量的整数数据类型(即我不能在字符串末尾输入 93,因为它会破坏目的)并将它放在字符串或其他东西中类似于我可以在模式结束后设置 X 个字符开始,或者换句话说,指针位置。很抱歉漫无边际。
问问题
80 次
1 回答
0
假设您已经将整个文件加载到单个字符串中,这并非不合理。
string html;
//(Some code that reads into a big string)
现在你只需要寻找那个标签。
string delimiter( "<p class=\"wx-temp\">" );
vector<int> temperatures;
size_t pos = html.find_first_of(delimiter);
while( pos != string::npos )
{
// Skip past the tag (to the temperature)
pos += delimiter.size();
if( pos >= html.size() ) break;
// Extract it (C-style) and chuck it into the vector.
int temperature = atoi( html.c_str() + pos );
temperatures.push_back(temperature);
// If you want to stop after the first 10:
if( temperatures.size() == 10 ) break;
// Find the next tag
pos = html.find_first_of(delimiter, pos);
}
于 2012-09-14T02:54:17.340 回答