我想查找[/
和]
(在這種情況下爲12345
)之間的數字。使用C++中的正則表達式在[/和]之間找到數字
我寫這樣的代碼:
float num;
string line = "A111[/12345]";
boost::regex e ("[/([0-9]{5})]");
boost::smatch match;
if (boost::regex_search(line, match, e))
{
std::string s1(match[1].first, match[1].second);
num = boost::lexical_cast<float>(s1); //convert to float
cout << num << endl;
}
不過,我得到這個錯誤:The error occurred while parsing the regular expression fragment: '/([0-9]{5}>>>HERE>>>)]'.
你需要逃避[ – Bastien
你必須逃脫外括號像'\ ['和'\]'。 –
是的 - 對不起。 '\'必須在C++字符串中轉義爲'\\'。所以最後的字符串看起來應該像'\\ [/([0-9] {5})\\]' –