C ++中的多行正则表达式

时间:2017-04-12 09:25:11

标签: c++ regex multilinestring

实际上,我试图在多行字符串中找到一个正则表达式,但我认为我在错误的方法中找到一个新行后的下一个正则表达式(等于'\ n')。这是我的正则表达式:

attribute for 'cardElevation' not found in com.sampleapp

1 个答案:

答案 0 :(得分:0)

构造正则表达式对象时可以指定一些标志,请参阅 文档http://en.cppreference.com/w/cpp/regex/basic_regex了解详情。

使用regex :: extended标志的简短工作示例,其中在搜索中指定了换行符'\ n':

#include <iostream>
#include <regex>

int main(int argc, char **argv)
{
  std::string str = "Hello, world! \n This is new line 2 \n and last one 3.";
  std::string regex = ".*2.*\n.*3.*";
  std::regex reg(regex, std::regex::extended);

  std::cout << "Input: " << str << std::endl;

  if(std::regex_match(str, reg))
    std::cout << "Match" << std::endl;
  else
    std::cout << "NOT match" << std::endl;

  return 0;
}