gpt4 book ai didi

c# - 使用正则表达式替换 csv 列中的\r\n

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:09 37 4
gpt4 key购买 nike

我的问题如下:

我有一个 csv 文件,其中一列数据用双引号 (") 括起来。
行尾是 \r\n(十六进制值:0D0A)。

我的问题:一个列可以包含\r\n(一般是一个带回车符的书面语句)。
当我想在 excel 中加载 CSV 时,这\r\n 被理解为换行。

我的问题解决方案是:使用正则表达式执行以下逻辑:

  • 以双引号开头并以双引号结尾的列
  • 一个真正的新行用\r\n 标识
  • 有问题的列以双引号 (") 开头,包含\r\n 并以双引号 (") 结尾

    对于找到的每个有问题的列(使用正则表达式)
    将\r\n 替换为空格(十六进制值:20)
    结束

任何使用 regex 和 c# 的解决方案?

非常感谢您的帮助

最佳答案

我想不出找到有问题的条目的简单方法(并不意味着没有),但是有一种简单的方法可以找到用双引号引起来的所有条目。然后,如果它们有问题,您可以更改它们:

var result = Regex.Replace(input, @"""(?:(\r\n)|[^""])+""", delegate(Match m)
{
if (string.IsNullOrEmpty(m.Groups[1].Value))
return m.Value;
return m.Value.Replace("\r\n", " ");
});

可能出现的问题:

如果您的文件有转义双引号字符,这可能不起作用。您必须对其进行测试。

关于c# - 使用正则表达式替换 csv 列中的\r\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27601267/

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