Message221666
BTW, note that the idea "successful lookaround assertions match an empty string" isn't just a figure of speech: it's the literal truth, and - indeed - is key to understanding what happens here. You can see this by adding some capturing groups around the assertions. Like so:
m = re.search("((?<=a))((?<=a))((?<=a))((?<=a))b", "xab")
Then
[m.span(i) for i in range(1, 5)]
produces
[(2, 2), (2, 2), (2, 2), (2, 2)]
That is, each assertion matched (the same) empty string immediately preceding "b" in the target string.
This makes perfect sense - although it may not be useful. So I think this report should be closed with "so if it bothers you, don't do it" ;-) |
|
Date |
User |
Action |
Args |
2014-06-26 23:42:32 | tim.peters | set | recipients:
+ tim.peters, ezio.melotti, mrabarnett, py.user, BreamoreBoy, serhiy.storchaka |
2014-06-26 23:42:32 | tim.peters | set | messageid: <1403826152.25.0.930128809913.issue14460@psf.upfronthosting.co.za> |
2014-06-26 23:42:32 | tim.peters | link | issue14460 messages |
2014-06-26 23:42:32 | tim.peters | create | |
|