On 8/12/2019 10:21 PM, Serhiy Storchaka
wrote:
12.08.19
22:41, Glenn Linderman пише:
On 8/12/2019 12:08 AM, Serhiy Storchaka
wrote:
Currently a raw literal cannot end in a
single backslash (e.g. in r"C:\User\"). Although there are
reasons for this. It is an old gotcha, and there are many
closed issues about it. This question is even included in FAQ.
Hmm. I didn't find it documentation, and searching several ways
for it in a FAQ, I wasn't able to find it either.
https://docs.python.org/3/faq/design.html#why-can-t-raw-strings-r-strings-end-with-a-backslash
Thanks. After my Google searches failed, I looked at the Python FAQ
TOC, and the sections that seemed most promising seemed to be
"General" and "Programming" and "Python on Windows". I never
thought to look under "Design and History". "Programming" actually
had a section on strings, and it wasn't there... which reduced my
enthusiasm for reading the whole thing, and since it is in 8
sections, it was cumbersome to do a global search in the browser.
It looks like the FAQ is part of the standard documentation, but it
seems like it would be more useful if there were cross-links between
the documentation and the related FAQs.
Thanks for your investigation, Serhiy.
Point 3 seems like the easiest way to convert most regular
expressions containing \" or \' from r"..." form to
v"""...""", without disturbing the internal gibberish in the
regular expression, and without needing significant analysis.
No new prefix is needed, since a single trailing backslash is
never a problem in regular expression (as it is an illegal RE
syntax).
I'd be interested in your comments on my
future import idea either here or privately. After 30 years of
Python, it seems that there are quite a few warts in the string
syntax, and a fresh start might be appropriate, as well as simpler
to document, learn, and teach, and future import would allow a
gradual, opt-in migration. It may be a long time, if ever, before
the current syntax warts could be removed and the future import
eliminated, but from the sounds of things, it might also be a long
time, if ever, before there can be agreement on adding new escapes
or giving errors for bad ones in the present syntax: making any
changes without introducing a new prefix is a breaking, incompatible
change.
Regarding point 4, if it is a string
literal used as a regexp, internal triple quotes can be recoded
as "{3} and '{3} .
Good point! This is yet one option.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-leave@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at
https://mail.python.org/archives/list/python-dev@python.org/message/VR34LGEWNJVNKIFNXW7R3CCHFH6USYTT/