C# 为什么正则表达式将换行符检测为有效的换行符而不是\n?

C# 为什么正则表达式将换行符检测为有效的换行符而不是\n?,c#,regex,C#,Regex,我目前正在为一个项目测试一个正则表达式,我在测试过程中发现了一个问题。(这些是来自System.Text.RegularExpression的C#正则表达式) 输入: 11 w 模式1: \d{1,} \w 模式2: \d{1,}\n\w 在我找到的页面中,它声明\n匹配一个新行字符(在我可以查看的任何其他页面中) 如果是这样,为什么模式1与输入匹配,而模式2与输入不匹配?它们不应该是一样的吗?正如Tim Biegeleisen所说,“在windows上,行分隔符不仅仅是\n,它是\r\n

我目前正在为一个项目测试一个正则表达式,我在测试过程中发现了一个问题。(这些是来自
System.Text.RegularExpression
的C#正则表达式)

输入:

11
w
模式1:

\d{1,}
\w
模式2:

\d{1,}\n\w
在我找到的页面中,它声明\n匹配一个新行字符(在我可以查看的任何其他页面中)


如果是这样,为什么模式1与输入匹配,而模式2与输入不匹配?它们不应该是一样的吗?

正如Tim Biegeleisen所说,“在windows上,行分隔符不仅仅是\n,它是\r\n”,于是我将模式2更改为
\d{1,}\r\n\w
,一切都很好。

在windows上,行分隔符不仅仅是
\n
,而是
\r\n
,也许这就解释了你的观察结果。效果很好,谢谢!