Dear Danny,
That was great, just the information I wanted and very prompt too. I've
tried the /f//lags =/ and it works. Thank you so much.
I had been banging my head against this for the last two days, googling
the universe and even considering going back to PERL, but for a lot of
reasons I want to do this in Python. I can and shall now.
Best regards
Ed
-------- Original Message --------
*Subject: *Re: [Tutor] Regex ^$ not behaving as expected
*From: *Danny Yoo <d...@hashcollision.org>
*To: *Edmund Butterworth <edmu...@talktalk.net>
*Cc: *Python Tutor Mailing List <tutor@python.org>
*Date: *08/12/2016, 17:20:19
Following up: drats! Detecting this conceptual TypeError is not
feasible under the current design, due to the choice of data
representation used in this API.
The reason is because the flags are being represented as integers, and
we're using bitwise operations to define the union of flags. That is:
#######################################
import re
re.MULTILINE
8
re.DOTALL
16
re.MULTILINE | re.DOTALL
24
########################################
Flags are integers here. Since re.sub is taking two optional
integer-based arguments, count and flags, Python's type system cannot
determine that we've passed flags in the wrong place, because it
legitimately looks like a valid count too. Bits are bits.
This is a very rough design edge and quite unfortunate. In an ideal
world, I can imagine that the representation of flags would be
different such that this mistake could be caught earlier. But in
absence of this, we've just got to be careful, I suppose. :(
Anyway, hope this helps!
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor