假设我有一个文本,表示为 std::string,其中包含几个不同的换行符,例如\r\n 但也只是\n 甚至只是\r。
我现在想通过替换所有非\r\n 换行符来统一这一点,即所有\r 和所有\n 换行符替换为\r\n。
一个简单的 boost::replace_all(text, "\n", "\r\n");不幸的是,它不起作用,因为这也会替换已经有效的\r\n 中的\n。
我认为 std::regex 应该是处理这个问题的好方法......但是我应该如何在正则表达式中表达它?这是一些代码:
#include <iostream>
#include <string>
#include <regex>
int main()
{
std::string text = "a\rb\nc\r\nd\n";
std::regex reg(""); // What to put here?
text = std::regex_replace(text, reg, "\r\n");
std::cout << text;
}
最后的文本应该是 "aaa\r\nbbb\r\nccc\r\nddd\r\n"
最佳答案
关于c++ - 不同换行符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43822587/