gpt4 book ai didi

c# - 在引号中查找管道忽略误报

转载 作者:行者123 更新时间:2023-11-30 21:28:05 24 4
gpt4 key购买 nike

<分区>

我正在尝试用空格替换引号内的竖线分隔字符。问题是我得到了很多误报,因为有些字符串是空的。如果引号之间有文字,我只想更换管道。我使用的正则表达式模式来自另一个 stackoverflow 帖子,因为我缺乏正则表达式技能。

数据样本:

"Hello"|"Green | Blue"|123.45|""|""|""|5|45

代码 我正在使用:

internal class Program
{
public static void Main()
{
string pattern = @"(?: (?<= "")|\G(?!^))(\s*[^"" |\s]+(?:\s +[^
""|\s]+)*)\s*\|\s*(?=[^""] * "")";
string substitution = @"\1 \2";
string input = @"""20190430|""Test Text""|""""|""""|""Manual""|""""|""Machine""|""""|""""|10.00|""""|0.00|||0.00||5600.00||||""A+""|""""|40.00||""""|""Vision Service |Troubleshoot""|57|""Y""|838|""Yellow Maroon""|850||""FL""||||0.00|||||||||||""""||""""||""""|||""""||||||""""||""""|""""||""""|""""||||||""""|""""|""""||||||||1||""";
RegexOptions options = RegexOptions.Multiline;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(input, substitution);
Console.WriteLine("Result:" + result);
Console.ReadKey();
}
}

它可以很好地替代“蓝绿色”管道。但它稍后也会替换引号之间的管道,这会在列被删除时破坏文件。

用我正在处理的文件的实际样本更新了代码。正则表达式找到它但没有替换管道。遗漏了一些东西。

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