如何拆分正则表达式而不是在一行中的文本文件中显示文本

时间:2015-06-14 10:13:29

标签: c# regex

我有两个小问题,我正在努力。两者都真的处理线。

1:如何将以下正则表达式代码放入Split()?

Regex(@"\r\n|\n|\r", RegexOptions.Singleline)
int num = copyText.Split().Length - 1;
//copyText is a string

2:当我从富文本框写入文本文件时,文本文件中的所有文本都显示在一行上。如何在富文本框中显示文本?

private void Write(string file, string text) {

    //Check to see if _Parsed File exists
    if (File.Exists(file)) {
        //Write to _Parsed text file
        using(StreamWriter objWriter = new StreamWriter(file)) {
            objWriter.Write(text);
            objWriter.Close();
        }
    } else {
        MessageBox.Show("No file named " + file);
    }
}


private void btnReplace_Click(object sender, EventArgs e) {

    // Replace -ing ending words to XXXXXX code goes here...


    //Write into richTextBox2
    wholeText = richTextBox1.Text + oldSummary + copyText + newSummary;
    Write(Second_File, wholeText);
    richTextBox2.Text = wholeText;
}

3 个答案:

答案 0 :(得分:0)

1:我建议:

int num = copyText.Split(new string[] { Environment.NewLine }, 
StringSplitOptions.None).Count();

2:确保richtextbox1.MultiLine设置为true

答案 1 :(得分:0)

对于第一个问题,试试这个:

int num = Regex.Split(copyText, @"\r\n|\n|\r").Count - 1;

请参阅:MSDN

对于第二个尝试:

File.WriteAllLines(FileName, richTextBox.Lines);

请阅读可能的dublicate:From RichTextBox to text files, line after line

RichTextBox.SaveFile(string path, RichTextBoxStreamType);内置函数

答案 2 :(得分:0)

第一个选项

我会像这样重写Write方法:

private void Write(string file, RichTextBox box)
{
    if (File.Exists(file))
    {
        System.IO.File.WriteAllLines(file, box.Lines);
    }
    else
    {
        MessageBox.Show("No file named " + file);
    }
}

第二个选项

private void Write(string file, RichTextBox box)
{
    if (File.Exists(file))
    {
        StreamWriter sw = File.CreateText(file);
        for (int i = 0; i < box.Lines.Length; i++)
        {
            sw.WriteLine(box.Lines[i]);
        }
        sw.Flush();
        sw.Close();
    }
    else
    {
        MessageBox.Show("No file named " + file);
    }
}

如果你愿意,你也可以试试foreach。

第二个选项更复杂,但更好

将RichTextBox作为变量传递给Write方法,如下所示:

Write(@"C:\path\to\file.ext", RichTextBox boxToWrite);