C# 如何处理正则表达式中的新行

C# 如何处理正则表达式中的新行,c#,regex,C#,Regex,我有一个应用程序,可以从用C#编写的文本文件中读取代码 每次代码通常遵循相同的模式 示例: 问题1100 根据我到目前为止所写的内容,这将导致正则表达式如下所示: string expr = "^[A-Z]{4}[0-9]{5}$"; 然后问题是,当从文本文件读取代码时(每新行一个),代码会附加\r新行字符。这是通过在上放置断点来查看实际传递的内容 我在上面的表达中遗漏了什么 另外,如果我单独添加代码,则不会附加/r字符,因此很好,在这种情况下,我需要在其中的某个位置添加or操作数 摘要 到目

我有一个应用程序,可以从用C#编写的文本文件中读取代码

每次代码通常遵循相同的模式

示例

问题1100

根据我到目前为止所写的内容,这将导致正则表达式如下所示:

string expr = "^[A-Z]{4}[0-9]{5}$";
然后问题是,当从文本文件读取代码时(每新行一个),代码会附加
\r
新行字符。这是通过在上放置断点来查看实际传递的内容

我在上面的表达中遗漏了什么

另外,如果我单独添加代码,则不会附加/r字符,因此很好,在这种情况下,我需要在其中的某个位置添加or操作数

摘要

到目前为止我拥有的:
^[A-Z]{4}[0-9]{5}$

我需要的是:
^[A-Z]{4}[0-9]{5}$
^[A-Z]{4}[0-9]{5}$
,包含/r字符


谢谢,任何澄清请让我知道作为我的经验 正则表达式非常有限


更新

string expr = "^[A-Z]{4}[0-9]{5}";

Regex regex = new Regex(expr , RegexOptions.IgnoreCase);
Match match = regex.Match( code );

if (!match.Success) //Pattern must match
{
  MessageBox.Show("Code does not match the necessary pattern");
  return false;
}

 return true;

你为什么要用正则表达式呢?使用
File.ReadLines
并使用正则表达式进行验证

foreach(string line in File.ReadLines(@"c:\file path here")) {
    if (Regex.Test(expr, line)) {
        Console.WriteLine(line);
    }
}

你为什么要用正则表达式呢?使用
File.ReadLines
并使用正则表达式进行验证

foreach(string line in File.ReadLines(@"c:\file path here")) {
    if (Regex.Test(expr, line)) {
        Console.WriteLine(line);
    }
}

你为什么要用正则表达式呢?使用
File.ReadLines
并使用正则表达式进行验证

foreach(string line in File.ReadLines(@"c:\file path here")) {
    if (Regex.Test(expr, line)) {
        Console.WriteLine(line);
    }
}

你为什么要用正则表达式呢?使用
File.ReadLines
并使用正则表达式进行验证

foreach(string line in File.ReadLines(@"c:\file path here")) {
    if (Regex.Test(expr, line)) {
        Console.WriteLine(line);
    }
}

如果您无法控制字符串的读取方式,还可以查看该方法,该方法允许您先清理字符串:

如下所示:

string str = "....".Trim(new char[] {'\r', '\n'});
这通常是推荐的(因为几乎任何东西都比regex:)好)


然后将其输入到已构建的正则表达式中。

如果无法控制字符串的读取方式,还可以查看该方法,该方法允许您先清理字符串:

如下所示:

string str = "....".Trim(new char[] {'\r', '\n'});
这通常是推荐的(因为几乎任何东西都比regex:)好)


然后将其输入到已构建的正则表达式中。

如果无法控制字符串的读取方式,还可以查看该方法,该方法允许您先清理字符串:

如下所示:

string str = "....".Trim(new char[] {'\r', '\n'});
这通常是推荐的(因为几乎任何东西都比regex:)好)


然后将其输入到已构建的正则表达式中。

如果无法控制字符串的读取方式,还可以查看该方法,该方法允许您先清理字符串:

如下所示:

string str = "....".Trim(new char[] {'\r', '\n'});
这通常是推荐的(因为几乎任何东西都比regex:)好)


然后将其输入到已构建的正则表达式中。

为什么不使用C#string.Split方法,您可以在多个分隔符上进行拆分。。我只是好奇,你不仅需要检查
\r,而且还需要检查\n
@MethodMan我不知道我可以用c语言做这件事,我需要用谷歌搜索它是如何工作的。同时,所提供的表达式完成了预期工作的50%。为什么不使用C#string.Split方法,您可以在多个分隔符上拆分。。我只是好奇,你不仅需要检查
\r,而且还需要检查\n
@MethodMan我不知道我可以用c语言做这件事,我需要用谷歌搜索它是如何工作的。同时,所提供的表达式完成了预期工作的50%。为什么不使用C#string.Split方法,您可以在多个分隔符上拆分。。我只是好奇,你不仅需要检查
\r,而且还需要检查\n
@MethodMan我不知道我可以用c语言做这件事,我需要用谷歌搜索它是如何工作的。同时,所提供的表达式完成了预期工作的50%。为什么不使用C#string.Split方法,您可以在多个分隔符上拆分。。我只是好奇,你不仅需要检查
\r,而且还需要检查\n
@MethodMan我不知道我可以用c语言做这件事,我需要用谷歌搜索它是如何工作的。同时,提供的表达式完成了预期工作的50%。更新问题,作为参考,我使用正则表达式和匹配对象来解决部分问题。更新问题,作为参考,我使用正则表达式和匹配对象来解决部分问题。更新问题,作为参考,我使用Regex和Match对象来解决部分问题。更新问题,作为参考,我使用Regex和Match对象来解决部分问题。这里的代码中发生了什么?它只是从字符串中删除“\r”和“\n”值吗?@KyleT:当且仅当它们位于字符串的开头和结尾时,它才会删除它们。如果只想从前面删除,可以查看
String.TrimStart()
Answer accepted,因为它提供了使用附加/r的文本文件或不附加/r的代码字符串进行测试的功能。这里的代码中发生了什么?它只是从字符串中删除“\r”和“\n”值吗?@KyleT:当且仅当它们位于字符串的开头和结尾时,它才会删除它们。如果只想从前面删除,可以查看
String.TrimStart()
Answer accepted,因为它提供了使用附加/r的文本文件或不附加/r的代码字符串进行测试的功能。这里的代码中发生了什么?它只是从字符串中删除“\r”和“\n”值吗?@KyleT:当且仅当它们位于字符串的开头和结尾时,它才会删除它们。如果只想从前面删除,可以查看
String.TrimStart()
Answer accepted,因为它提供了使用附加/r的文本文件或不附加/r的代码字符串进行测试的功能。这里的代码中发生了什么?是j吗