我在网上找个例子
std::string testString = "SDFSDF\r\n Hello    World  !  GoodBye  World\r\n4645645\r\n";
std::string TrimLeft = "([\\s\\r\\n\\t]*)(\\w*.*)";
boost::regex expression(TrimLeft);
testString = boost::regex_replace( testString, expression, "$2" );上面是可以解析出来的 SDFSDFHello    World  !  GoodBye  World4645645。但是,把字符串textString 保存到文件中,从文件读取后在解析,解析的结果就不对 了
出来的结果还是 原来那个字符串 SDFSDF\r\n Hello    World  !  GoodBye  World\r\n4645645\r\n
不知道哪里出问题了,不明白这是为什么?

解决方案 »

  1.   

    SDFSDF\r\n Hello World ! GoodBye World\r\n4645645\r\n
    在文件中应该是
    SDFSDF
     Hello World ! GoodBye World
    4645645应该是这样的,而且你要保存成windows的文本格式。windows的换行带有\r,linux的不带\r
      

  2.   

     可能是我没说清楚
    解析后 是这样
    SDFSDF
     Hello World ! GoodBye World
    4645645
    但是 从文本里 解析这个字符串 就没变化,只是把字符串读出来了,没有解析
      

  3.   

    不知道楼主到底要什么在正则表达式中, \r 和 \n 并不代表匹配文本中的 \r \n\r表示匹配一行的开头 ,  而 \n 匹配 一行的结尾需要注意到是, 如果是多行文本的话 你要打开 multiline的选项