区分\ r \ n字符串中的新行

时间:2018-11-07 20:38:01

标签: regex character-encoding newline

给出一个包含代码的文件,我的程序使用流读取器读取该文件,并将其放入字符串中。 因此,对于此文件:

class A{

public void foo()
{
    r="asdastest@asdf.com";
    s="*asasdddsaa@test.asdf.com";
    t="@asdf.com";
    u="@pas.asdf.com nwe asda";
}

}

字符串是:

"class A{\r\n \r\n public void foo()\r\n {\r\n  r=\"asdastest@asdf.com\";\r\n  s=\"*asasdddsaa@test.asdf.com\";\r\n  t=\"@asdf.com\";\r\n  u=\"@pas.asdf.com nwe asda\";\r\n }\r\n}\r\n\r\n\r\n"

(忽略\ t,将其替换为“”)。

我得到一个正则表达式作为输入,正则表达式使用“ $”在“ CRLF之前”找到一条语句。 输入的正则表达式为:(?i)\u0040.{0,10}asdf\u002Ecom($|\s|\W).* 但是,当我在文本上执行正则表达式时,它只会找到一个结果。 如果我在表示代码的字符串中添加“ enter”而不是\ r \ n之一,则会显示其他结果。 由于我无法修改正则表达式,如何读取文件并获得我期望的4个结果?

读取文件的代码是:

 using (StringReader sr = new StringReader(ParsingHelpers.ReadFromFile(FilesExtensions.Instance, Configuration.Implementation.Configuration.Instance, LogEngineWriter.GetInstance(), curFile, "FindByRegex")))
                                {

                                    string bla=sr.ReadToEnd();
                                    bla=bla.Replace("\t", " ");
                                    fileStrBuilder.Append(bla);                                                                                      
                                }

正则表达式执行是我用多行和单行编写的正则表达式的常规匹配项。 匹配结果为:

@asdf.com\";\r\n s=\"*asasdddsaa@test.asdf.com\";\r\n t=\"@asdf.com\";\r\n u=\"@pas.asdf.com nwe asda\";\r\n }\r\n}\r\n\r\n\r\n"

0 个答案:

没有答案