gpt4 book ai didi

c++ - 不同换行符的正则表达式

转载 作者:行者123 更新时间:2023-11-30 00:45:16 25 4
gpt4 key购买 nike

假设我有一个文本,表示为 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"

最佳答案

std::regex_replace(text, reg, "\r\n|\r|\n");

应该匹配。

更多信息在这里:

Match linebreaks - \n or \r\n?

关于c++ - 不同换行符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43822587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com