https://stackoverflow.com/questions/6770898/unknown-escape-sequence-error-in-go
例如以上链接中的错误
#include <iostream> #include <boost/regex.hpp> #include <string> using namespace std; int main() { std::string regstr = "[0-9]+.[0-9]+.[0-9]+.[0-9]+"; boost::regex expression(regstr); std::string str = "192.168.0.3熟悉这个文图 192.168.1.1以上"; boost::smatch what; std::string::const_iterator begin = str.begin(); std::string::const_iterator end = str.end(); while (boost::regex_search(begin, end, what, expression)) { std::string msg = what[0]; std::cout<< "start:" << what[0].first - str.begin() << "tend:" << what[0].second - str.begin() << std::endl; std::cout << "0 :" << msg.c_str() << std::endl; begin = what[0].second; } return 0; }
编译
g++ -std=c++14 -Wall -O3 -finline-functions -lboost_regex -o main main.cpp && ./main
报错:
unknown escape sequence: .
原因:
字符串string里“{”表示{
但是boost::regex中,需要“\{”。 第一个""表示提取后面的“{”串。第二个才是表意。
因此
std::string regstr = "[0-9]+.[0-9]+.[0-9]+.[0-9]+";
需要改成
std::string regstr = "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+";
详细解释见最上面链接,或者下方截图。
原文链接: https://www.cnblogs.com/misszhu-home/p/7719577.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/261806
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!