我不得不编写一个正则表达式,将输入字符串限制为最多250个字符,最多7行。这些必须在一个正则表达式中。
我会单独写:
^.{0,250}$ // max length
^([^\r\n]*[\r\n][^\r\n]*){0,6}$ //maximum seven lines
使用它们组合 (?= ..)(?= ..)似乎不适用于https://www.debuggex.com/
有没有办法可以在一个正则表达式中完成?
编辑:这是.NET
答案 0 :(得分:1)
您可以使用negative lookahead assertion:
(?s)^(?!(?:[^\r\n]*\r?\n){7}).{0,250}$
<强>解释强>
(?s) # Mode modifier: Dot matches newlines
^ # Match start of string
(?! # Assert that it's impossible to match...
(?: # (Start of group):
[^\r\n]* # Any number of characters except newlines
\r?\n # followed by one Windows or Mac/Unix newline
){7} # repeated seven times
) # End of lookahead assertion
.{0,250} # Match up to 250 characters of any kind
$ # Match end of string