Comment 1 for bug 1891027

Revision history for this message
Dougal Matthews (d0ugal) wrote :

I can confirm the error and it seems to be for the reason you guessed. We are including the name in the regex itself.

>>> import re
>>> re.compile("-[TBE134N-2.61]-")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/dougal/.pyenv/versions/3.8.4/lib/python3.8/re.py", line 252, in compile
    return _compile(pattern, flags)
  File "/home/dougal/.pyenv/versions/3.8.4/lib/python3.8/re.py", line 304, in _compile
    p = sre_compile.compile(pattern, flags)
  File "/home/dougal/.pyenv/versions/3.8.4/lib/python3.8/sre_compile.py", line 764, in compile
    p = sre_parse.parse(p, flags)
  File "/home/dougal/.pyenv/versions/3.8.4/lib/python3.8/sre_parse.py", line 948, in parse
    p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
  File "/home/dougal/.pyenv/versions/3.8.4/lib/python3.8/sre_parse.py", line 443, in _parse_sub
    itemsappend(_parse(source, state, verbose, nested + 1,
  File "/home/dougal/.pyenv/versions/3.8.4/lib/python3.8/sre_parse.py", line 598, in _parse
    raise source.error(msg, len(this) + 1 + len(that))
re.error: bad character range N-2 at position 8

I think we will need to re-work this part of the code to make it safer in situations like this.