【发布时间】:2017-09-07 23:54:48
【问题描述】:
实际上,我尝试在多行字符串中查找正则表达式,但我认为在新行之后查找下一个正则表达式(等于'\n')的方法是错误的。这是我的正则表达式:
#include <iostream>
#include <fstream>
#include <sstream>
#include <regex>
#define USE ".*[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}.*(?:\\n)*"
int main(int argc, char **argv)
{
std::stringstream stream;
std::filebuf *buffer;
std::fstream fs;
std::string str;
std::regex regex(USE);
if (argc != 2)
{
std::cerr << "Think to the use !" << std::endl;
return (-1);
}
fs.open(argv[1]);
if (fs)
{
stream << (buffer = fs.rdbuf());
str = stream.str();
if (std::regex_match(str, regex))
std::cout << "Yes" << std::endl;
else
std::cout << "No" << std::endl;
fs.close();
}
return (0);
}
【问题讨论】:
-
抱歉,代码并没有很好地说明您想要实现的目标。请解释要求,提供示例文本和预期输出。
-
@WiktorStribiżew,我尝试打开一个文本文件,在字符串中读取并存储字符,并在字符串上使用正则表达式来查找我的正则表达式中的数字,但我无法解析多行。那是我的问题。
-
@WiktorStribiżew,我将尝试发布一个简单的示例。
标签: c++ regex multilinestring