C# 正则表达式以确保使用\r\n

C# 正则表达式以确保使用\r\n,c#,regex,newline,C#,Regex,Newline,我正在寻找正则表达式以确保我的字符串只包含换行符,\r\n而不包含\r\n或\r\n 没有错误的示例文本: 您好,\r\n\r\n欢迎乘坐我们全新的邮轮。\r\n问候您 有错误的示例文本: 您好\r\r\n我们的全新邮轮上有Elcom。\n问候您 提前谢谢你 谢谢你,Danny试试这个正则表达式: (\r[^\n])|([^\r]\n) 如果匹配,则文本包含松散的\r或\n 注意:如果将其放入字符串中,则需要转义\r\n两次。或者最好把它放在@字符串中,像这样@(\r[^\n])|([^\r]

我正在寻找正则表达式以确保我的字符串只包含换行符,\r\n而不包含\r\n或\r\n

没有错误的示例文本:
您好,\r\n\r\n欢迎乘坐我们全新的邮轮。\r\n问候您

有错误的示例文本:
您好\r\r\n我们的全新邮轮上有Elcom。\n问候您

提前谢谢你
谢谢你,Danny试试这个正则表达式:

(\r[^\n])|([^\r]\n)
如果匹配,则文本包含松散的
\r
\n

注意:如果将其放入字符串中,则需要转义\r\n两次。或者最好把它放在
@
字符串中,像这样
@(\r[^\n])|([^\r]\n)

编辑:示例:

using System;
using System.Text.RegularExpressions;
public class Test
{
        public static void Main()
        {
                Regex r = new Regex(@"(\r[^\n])|([^\r]\n)");
                string[] Test = { "Hello,\r\n\r\nWelcome on board of our brand-new cruise line.\r\nKind regards", 
                                         "Hello\r\r\nWelcom on board of our brand-new cruise line.\nKind regards" };

                foreach(string t in Test)
                {
                        System.Console.Write("\"{0}\" ", t.Replace("\r", "\\r").Replace("\n", "\\n"));
                        if(r.IsMatch(t))
                                System.Console.WriteLine("Is not ok");
                        else
                                System.Console.WriteLine("Is ok");
                }
        }
}
输出:

"Hello,\r\n\r\nWelcome on board of our brand-new cruise line.\r\nKind regards" Is ok
"Hello\r\r\nWelcom on board of our brand-new cruise line.\nKind regards" Is not ok

链接:

我修复了上一个示例中出现的错误。这里是一个测试工作示例

using System;
using System.Text.RegularExpressions;
public class Test
{
        public static void Main()
        {
        Regex rxSingleCharNewLine = new Regex(@"\r(?!\n)|(?<!\r)\n",RegexOptions.Singleline);
        Regex rxNewLine = new Regex(@"\r\n",RegexOptions.Singleline);
                string[] Test = { "Hello,\r\n\r\nWelcome on board of our brand-new cruise line.\r\nKind regards", 
                                         "Hello\r\r\nWelcom on board of our brand-new cruise line.\nKind regards" };

                foreach(string t in Test)
                {
                        System.Console.Write("\"{0}\" ", t.Replace("\r", "\\r").Replace("\n", "\\n"));
                        if(!rxSingleCharNewLine.IsMatch(t) && rxNewLine.IsMatch(t))
                                System.Console.WriteLine("Is ok");
                        else
                                System.Console.WriteLine("Is not ok");
                }
        }
}
使用系统;
使用System.Text.RegularExpressions;
公开课考试
{
公共静态void Main()
{

Regex rxSingleCharNewLine=new Regex(@“\r(?!\n)|)(?我想,如果子字符串“Hello\r\r\nWelcome”上面的解决方案不匹配…
match
返回一个
match
对象,而不是
bool
,如果您只想测试,请使用
IsMatch
。谢谢,我不是c#人,但我对Regex的了解足以回答这个问题