Message74660
On first blush, this issue sounds quite similar to issue 2537, but I
have been looking at different scenarios and found that there is a
subtle difference because, grammatically:
(?m)(?:.*$)(.*$)
is the same as:
(?m)(.*$){2}
Yet the former compiles while the later raises the exception you list
below. Thus, I think the issue YOU raise is indeed related to the
redundant repeat operator issue numbered 2537, BUT, when I match an
expression with the alternate form, I get an empty string in my capture
group, since in a range repeat over a capture group, only the last group
is captured, while the entire expression matches only the first line,
without the end-line character. Thus, the other thing to remember is
that ^ and $ are zero-width matches, so when you write .*$, you are
saying match up to, but not including, the end of the line. If you
immediately follow that with another .*$, you will start from the point
"up to, but not including, the end of the line", which means the next
character is an end of line. Thus, when you reach the second .*$, you
capture nothing because the .* is allowed to be zero-length and you
still haven't advanced PAST the end of the line.
As a working alternative, you could write r'(?m)(?:(.*$)[\r\n]*){1,4}' ,
since this would give you your 1-4 lines, but also consume the carriage
return and line feed characters to get you to the next line.
Since we don't want to change the meaning of $ and ^ to make them
capturing (custom POSIX character classes may make 'capturing' a new
line character easier), and the 'redundant repeat operator' is already
listed as a bug (your expression is essentially saying (.*){1,4}$
because it does not capture the new-line character(s) and thus has a
redundant repeat operation in the range repeat expression), I'm willing
to call this a repeat (technically repeated by as this issue is older)
of issue 2537. |
|
Date |
User |
Action |
Args |
2008-10-11 17:25:01 | timehorse | set | recipients:
+ timehorse, doko, niemeyer, schmir |
2008-10-11 17:25:00 | timehorse | set | messageid: <1223745900.93.0.792478546958.issue1633953@psf.upfronthosting.co.za> |
2008-10-11 17:24:59 | timehorse | link | issue1633953 messages |
2008-10-11 17:24:57 | timehorse | create | |
|