On Sat, Sep 19, 2020 at 4:46 PM Greg Ewing <greg.ewing@canterbury.ac.nz> wrote:
On 20/09/20 7:45 am, Christopher Barker wrote:
In [4]: from parse import parse In [5]: parse("{x}{y}{z}", a_string) Out[5]: <Result () {'x': '2', 'y': '3', 'z': '4567'}>
In [6]: parse("{x:d}{y:d}{z:d}", a_string) Out[6]: <Result () {'x': 2345, 'y': 6, 'z': 7}>
So that's interesting -- different level of "greadiness" for strings than integers
Hmmm, that seems really unintuitive. I think a better result would be a parse error -- "I was told to expect three things, but I only found one."
That's what I mean when I say that the format language isn't well suited to parsing. But it did find three things, or four, or .... that format specifier doesn't have any whitespace in between the {}s. So it isn't looking for spaces between the numbers.
I'm wondering whether such patterns should be disallowed on the
basis that they're inherently ambiguous.
I don't know that they are ambiguous, as long as the rules are laid out somewhere. Though confusing might be a good word :-) -CHB Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/LXUZLU... Code of Conduct: http://python.org/psf/codeofconduct/
-- Christopher Barker, PhD Python Language Consulting - Teaching - Scientific Software Development - Desktop GUI and Web Development - wxPython, numpy, scipy, Cython