C# 验证字符串的Regex语句正好是2行

C# 验证字符串的Regex语句正好是2行,c#,.net,regex,C#,.net,Regex,我正在寻找一个正则表达式语句来验证一个字符串正好是两行。我在用电话 我想确保包含整个输入字符串。我假设在表达式的开始和结束处需要\A和\Z标记。我还使用了of(\r\n |[\n\v\f\r\x85\u2028\u2029]) 到目前为止,我已经创建了以下内容。虽然它没有像预期的那样工作 \A.+?(\r\n|[\n\v\f\r\x85\u2028\u2029])[^\n\v\f\r\x85\u2028\u2029]+?\1?\Z 示例输入 匹配 没有对手 行可以在最后一行之后有一个可选的新行

我正在寻找一个正则表达式语句来验证一个字符串正好是两行。我在用电话

我想确保包含整个输入字符串。我假设在表达式的开始和结束处需要
\A
\Z
标记。我还使用了of
(\r\n |[\n\v\f\r\x85\u2028\u2029])

到目前为止,我已经创建了以下内容。虽然它没有像预期的那样工作

\A.+?(\r\n|[\n\v\f\r\x85\u2028\u2029])[^\n\v\f\r\x85\u2028\u2029]+?\1?\Z
示例输入

匹配

没有对手

行可以在最后一行之后有一个可选的新行字符。只要它没有任何文本

^[^\r\n]+\r\n[^\r\n]+$

^ - start of string
[^\r\n]+ - any character that isn't a CRLF (New line) (1 or more times)
\r\n - match a CRLF (new line)
[^\r\n]+ - same as before
$ - end of string
只需阅读你的最后一部分,你可以在结尾处有可选的新行

^[^\r\n]+\r\n[^\r\n]+(\r\n)?$
只需阅读你的最后一部分,你可以在结尾处有可选的新行

^[^\r\n]+\r\n[^\r\n]+(\r\n)?$

你将不得不使用你的正则表达式选项,但最终你的正则表达式应该是这样的

@“^[^\n]*\n[^\n]*\n*$”


最后的
\n*
是可选的换行符

您必须使用您的正则表达式选项,但最终您的正则表达式应该是这样的

@“^[^\n]*\n[^\n]*\n*$”


最后的
\n*
是可选的换行符

您的解决方案与我的解决方案非常接近。我用更通用的
(\r\n\v\f\r\x85\u2028\u2029)更改了
\r\n
。我还使用了
\A
\Z
而不是
^
$
,因为我想在整个字符串的开头和结尾进行检查。最后一个正则表达式是
\A[^\n\v\f\r\x85\u2028\u2029]+?(\r\n |[\n\v\f\r\x85\u2028\u2029])[^\n\v\f\r\x85\u2028\u2029]+?\1?\Z
,使用单行选项。您的解决方案与我的解决方案非常接近。我用更通用的
(\r\n\v\f\r\x85\u2028\u2029)更改了
\r\n
。我还使用了
\A
\Z
而不是
^
$
,因为我想在整个字符串的开头和结尾进行检查。最后的正则表达式是
\A[^\n\v\f\r\x85\u2028\u2029]+?(\r\n |[\n\v\f\r\x85\u2028\u2029])[^\n\v\f\r\x85\u2028\u2029]+?\1?\Z
使用单行选项。
^[^\r\n]+\r\n[^\r\n]+(\r\n)?$