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

本文关键字:文本 一行 显示 文件 何拆分 拆分 正则表达式 | 更新日期: 2023-09-27 17:55:59

我有两个小问题在挣扎。两者都真的处理台词。

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;
}

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

对于第一个问题,请尝试以下操作:

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

请参阅: MSDN

对于第二个尝试:

File.WriteAllLines(FileName, richTextBox.Lines);

请阅读可能的配音:从富文本框到文本文件,一行又一行

RichTextBox.SaveFile(string path, RichTextBoxStreamType);内置功能

1:我建议:

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

2:确保富文本框1。多行设置为真

第一个选项

我会像这样重写 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);
    }
}

如果你愿意,你也可以尝试每一个。


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

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

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