-2
我想使用C++解析文本文件,並檢查是否存在特定的PATTERN
。在C++中使用正則表達式查找()
PATTERN
由;<n_WhiteSpaces><MACRO>
組成。 在我的代碼中,這些MACRO已經在C++ Vector中定義了,我們使用迭代器檢查一行中是否存在這些宏。
vector<string> macroList;
vector<string>::const_iterator iter;
macroList.push_back("MACRO1");
macroList.push_back("MACRO2");
macroList.push_back("MACRO3");
string Line;
getline(*FilePtr, Line);
for(iter = macroList.begin(); iter != macroList.end(); iter++)
{
currentpos = Line.find(;<n_WhiteSpaces>*iter);
}
現在,我很確定find(;<n_WhiteSpaces>*iter)
在語法上是錯誤的。就像我實際需要做的事情一樣,我正在提供這一點。 我的代碼應該返回;
的位置,然後是n
空格(也可以是0),然後是macroList
矢量的任何MACRO。
是否有可能避免串聯兩個字符串;<n_WhiteSpaces>
& *iter
?請幫我找到regex
。
Newbie to C++。對不起,如果我的問題聽起來很愚蠢! :P
該模式需要用雙引號括起來。而std :: string :: find()不支持正則表達式。 –
使用[std :: regex_search](http://en.cppreference.com/w/cpp/regex/regex_search) – Galik