Во-первых, как уже говорили другие, вероятно, есть хорошие альтернативы использованию 100 групп. Метод re.findall
может быть полезным для начала. Если вам действительно нужно более 100 групп, единственный обходной путь, который я вижу, - это модификация основного кода Python.
В [python-install-dir]/lib/sre_compile.py
просто измените функцию compile()
, удалив следующие строки:
# in lib/sre_compile.py
if pattern.groups > 100:
raise AssertionError(
"sorry, but this version only supports 100 named groups"
)
Для немного более гибкой версии просто определите константу в верхней части модуля sre_compile
, и приведенная выше строка сравнивается с этой константой вместо 100.
Как ни странно, в (Python 2.5) источнике есть комментарий, указывающий, что ограничение на 100 групп планируется удалить в будущих версиях.