自学内容网 自学内容网

c# 设置Regex Multiline无效问题

设置RegexOptions.Multiline后正则中$可匹配每一行的结束符,但因为windows系统使用\r\n作为结束符,而 Multiline 是能匹配\n,所以就会导致c#或者说windows开发下会导致Multiline失效.

所以在写的时候把 $ 写成 \r?$ 就可以了.

正则表达式的选项 - .NET | Microsoft Learn

默认情况下,$ 仅在输入字符串的末尾符合条件。 如果指定了 RegexOptions.Multiline 选项,它将在换行符 (\n) 或输入字符串的末尾处符合条件。

$ 在这两种情况下都无法识别回车/换行符组合 (\r\n)。 $ 始终忽略任何回车 (\r)。 若要使用 \r\n 或 \n 结束RegexOptions.Multiline匹配,请使用子表达式 \r?$,而不只是 $。 请注意,这将构成匹配的 \r 部分。


原文地址:https://blog.csdn.net/jwb7832007/article/details/145245616

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!