0

次の形式の文字列があります。

"one,",2,3,"four " ","five"

次の形式で出力する必要があります。

one,
2
3
four " 
five

上記の正規表現を作成するのを手伝ってくれる人はいますか?

4

2 に答える 2

1

正規表現なしでこれを行うことができます。あなたがやろうとしていることは私には明らかではありません。更新された質問のコードを調整しました:

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);
        }
    }
}
于 2012-09-11T10:00:58.053 に答える
0
  string newString = Regex.Replace(oldString, @'[^",]', ' ');

正規表現が優れていることを願っていますが、アイデアを見てもらいたいだけです。

編集:

 string newString = Regex.Replace(oldString, @'[^",]', '\n');
于 2012-09-11T09:59:53.023 に答える