如何创建C#Regex来拆分带有引号中某些单词的字符串?

如何创建C#Regex来拆分带有引号中某些单词的字符串?,c#,regex,string,split,C#,Regex,String,Split,我有一个字符串,格式如下: "one,",2,3,"four " ","five" one, 2 3 four " five 我需要以下格式的输出: "one,",2,3,"four " ","five" one, 2 3 four " five 有人能帮我为上面的内容创建正则表达式吗 string newString = Regex.Replace(oldString, @'[^",]', ' '); 我希望正则表达式是好的,但我只是想让你看看这个想法 编辑: 您可以在没有正

我有一个字符串,格式如下:

"one,",2,3,"four " ","five"
one,
2
3
four " 
five
我需要以下格式的输出:

"one,",2,3,"four " ","five"
one,
2
3
four " 
five
有人能帮我为上面的内容创建正则表达式吗

  string newString = Regex.Replace(oldString, @'[^",]', ' ');
我希望正则表达式是好的,但我只是想让你看看这个想法

编辑:


您可以在没有正则表达式的情况下执行此操作。我不清楚你想做什么。我已针对更新的问题调整了代码:

var text = "\"one\",2,3,\"four \"\",\"five\"";

var collection = text
    .Split(',')
    .Select(s =>
                {
                    if (s.StartsWith("\"") && s.EndsWith("\""))
                    {
                        s = s.Substring(1, s.Length - 2);
                    }
                    return s;
                })
    .ToList();

foreach (var item in collection)
{
    Console.WriteLine(item);
}
我为您添加了另一个示例,它使用CSV阅读器。我已经从NuGet安装了“CsvHelper”软件包:

const string text = "\"one,\",2,3,\"four \"\"\",\"five\"";

using (var textReader = new StringReader(text))
using (var reader = new CsvReader(textReader))
{
    reader.Configuration.Delimiter = ',';
    reader.Configuration.AllowComments = false;
    reader.Configuration.HasHeaderRecord = false;

    if (reader.Read())
    {
        foreach (var item in reader.CurrentRecord)
        {
            Console.WriteLine(item);
        }
    }
}

你为什么想要正则表达式?使用
String.Split
Trim
实现这一点很简单。String有什么问题。替换(“\”,“”)和String.Split(“,”)?它看起来像CSV数据。您对此有何期望:“一,二?”",2,3? 你可能想看看CSV阅读器/解析器:+1,因为你的问题很好,这就是网站的目的。字符串中可能有一个。例如上面示例中的“一”。感谢您的更新,但第一种方法不适用于“一”的附加逗号(,),第二种方法不适用于“四”的附加引号。第二种方法使用CSV。来自维基百科:带有嵌入双引号字符的字段必须被引用,并且每个嵌入双引号字符必须由一对双引号字符表示。“。您可以在此处阅读有关CSV格式的更多信息:。我还为您更新了示例,以便您可以查看如何添加额外字符。”。