我正在尝试使用正则表达式删除字符串中的第一行。
我们知道,换行符取决于操作系统,所以我使用\r\n|\n|\r
作为正则表达式。
唯一的问题是,我无法让它发挥作用..
int findMatchOffset(const std::string & iStr, const boost::regex & iExpression)
{
boost::smatch aResults;
if(boost::regex_match(iStr, aResults, iExpression))
{
return aResults.position();
}
return -1;
}
void removeFirstLine(std::string & ioMessageStr)
{
boost::regex kNewLine("\r\n|\n|\r", boost::regex_constants::bk_vbar);
int aIndex = findMatchOffset(ioMessageStr, kNewLine);
ioMessageStr.erase(0, aIndex + 1);
}
你能发现上面代码中的错误吗?
regex_match返回false,为什么?
感谢您的帮助。