1

私はメンタルブロックにぶつかったようで、誰かが私を正しい方向に向けてくれることを願っています. 値の間に多数のコンマ(ランダム)があるcsvファイルがあります。2つのコンマを1つに置き換えるなど、この問題に対処するコードがあります。以下を見てください:

        using (StreamReader r = new StreamReader(tbFilePathName.Text))
        {
            string AllLines;
            string newLines;

            //This skips the first line.
            AllLines = r.ReadLine();

            //Reads all the lines to the end.
            AllLines = r.ReadToEnd();

            //This replaces all the instances of a double comma into a single comma. Effectively getting all the data into one column of the csv.
            newLines = Regex.Replace(AllLines, ",{2,}", ",").Trim(',');

            rtbViewLines.AppendText(newLines);

            r.Close();

ただし、各行の末尾にあるカンマを削除して、行内にカンマのみを残したいと考えています。以下の関数と一緒にこれを行うにはどうすればよいですか?

 newLines = Regex.Replace(AllLines, ",{2,}", ",").Trim(',');

ありがとうございました!

4

3 に答える 3

1

1つのreplaceステートメントでそれを実行できるかどうかはわかりませんが、別の方法は分割して再結合することです:

newLines = Sting.Join(
               AllLines.Split(new [] {','},StringSplitOptions.RemoveEmptyEntries)
              ,",");
于 2013-01-25T18:38:12.690 に答える
1

r.ReadToEnd() を実行する代わりに、行をループして末尾のコンマを削除します

//Reads all the lines to the end.
AllLines = r.ReadToEnd();

新着

//Reads all the lines to the end.
while (r.Peek() >= 0)
{
    AllLines += r.ReadLine().TrimEnd(',');
}
于 2013-01-25T18:53:42.273 に答える
0

前向きの後読みを使用して、前にコンマがあるコンマ、または文字列の末尾にあるコンマを見つけることができます。

newLines = Regex.Replace(AllLines, "(?<=,),+|,+$", "", RegexOptions.Multiline);
于 2013-01-25T18:39:50.113 に答える