REGEX:最大长度和出现次数

时间:2015-02-23 09:52:33

标签: .net regex

我不得不编写一个正则表达式,将输入字符串限制为最多250个字符,最多7行。这些必须在一个正则表达式中。

我会单独写:

^.{0,250}$ // max length
^([^\r\n]*[\r\n][^\r\n]*){0,6}$ //maximum seven lines

使用它们组合 (?= ..)(?= ..)似乎不适用于https://www.debuggex.com/

有没有办法可以在一个正则表达式中完成?

编辑:这是.NET

1 个答案:

答案 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