Regex with StreamReader

本文关键字:StreamReader with Regex | 更新日期: 2023-09-27 18:20:05

我对streamreader有一个有趣的问题。

我的代码:

    string file, text;
    MatchCollection mcol;
    private void btnGozat_Click(object sender, EventArgs e)
    {
        file = "c:/filelist.txt";
        StreamReader sr = new StreamReader(@file,Encoding.Default);
        text = sr.ReadToEnd();
        Regex myreg = new Regex(@"['d]{1,10}'n{1}('d{2}:'d{2}:'d{2},'d{3}) --> ('d{2}:'d{2}:'d{2},'d{3})'s*(['w ığüşöçĞÜŞİÖÇâêî.!" + "'"" + @":''-''?'^,'s]*)('n)$", RegexOptions.Multiline);
        mcol = myreg.Matches(text);//<<<<<<<<<<<<<<<<<< care this row
        for (int i = 0; i < mcol.Count; i++)
        {
            cbList.Items.Add(i.ToString());
        }
    }

当我尝试这个代码mcol。计数为0并且任何未添加cbList.的项目但是,当我在写richtextbox1时给变量发文本,并将此行更改为"mcol = myreg.Matches(richtextbox1.text);"时,它就起作用了。

private void btnGozat_Click(object sender, EventArgs e)
{
    file = "c:/filelist.txt";
    StreamReader sr = new StreamReader(@file, Encoding.Default);
    icerik = sr.ReadToEnd();
    richTextBox1.Text = icerik;//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    Regex myreg = new Regex(@"['d]{1,10}'n{1}('d{2}:'d{2}:'d{2},'d{3}) --> ('d{2}:'d{2}:'d{2},'d{3})'s*(['w ığüşöçĞÜŞİÖÇâêî.!" + "'"" + @":''-''?'^,'s]*)('n)$", RegexOptions.Multiline);
    mcol = myreg.Matches(richTextBox1.Text);//<<<<<<<<<<<<<<<<<<<When i change this row it working
    for (int i = 0; i < mcol.Count; i++)
    {
        cbList.Items.Add(i.ToString());
    }
}

我的正则表达式正在工作,我尝试。

Regex with StreamReader

我认为问题出在编码中。查看文件使用的编码类型。编码。默认值可能是ASCII,所以您可以尝试使用Unicode。