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)?$