C# 正则表达式以确保使用\r\n
我正在寻找正则表达式以确保我的字符串只包含换行符,\r\n而不包含\r\n或\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\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的了解足以回答这个问题