我有一个字符串,格式如下:
"one,",2,3,"four " ","five"
我需要以下格式的输出:
one,
2
3
four "
five
谁能帮我为上述创建正则表达式?
您可以在没有 Regex 的情况下执行此操作。我不清楚你想做什么。我已经调整了更新问题的代码:
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 newString = Regex.Replace(oldString, @'[^",]', ' ');
我希望正则表达式是好的,但我只是想让你看到这个想法。
编辑:
string newString = Regex.Replace(oldString, @'[^",]', '\n');