Python автоопределение и разделение групп регулярных выражений - PullRequest
1 голос
/ 12 мая 2019

У меня есть шаблон регулярного выражения, который слишком длинен, чтобы набирать его здесь, но вы можете прочитать его здесь:

https://linksnappy.com/api/REGEX

Я хочу перекомпилировать его сразу, но я получаю AssertionError и не могу скомпилировать более 100 именованных групп.

Я попытался написать шаблон, чтобы разбить вышеупомянутый, но слишком сложно заставить его работать и не вызывать никаких исключений из sre _ *. Py.

Существует ли функция, которая может автоматически разбивать группы / альтернативы захвата, подобно sre_parse, но составлять список с альтернативами регулярного выражения из приведенного выше шаблона?

1 Ответ

0 голосов
/ 12 мая 2019

Я скопировал строки и скомпилировал их в python3, но не получил AssertionError.Единственный навык, который я использовал, это использование буквальной строки '' 'regex' ''.

Я также вставил ее в regex101 .Это также верно и дает очень подробные объяснения всех альтернатив и групп захвата.

Для python2 я видел в исходном коде , что количество групп захвата ограничено 100. Вв этом случае python3 - лучший вариант.Если требуется python2, вам может потребоваться разделить / сократить регулярные выражения или отказаться от его использования.

В приведенном вами конкретном примере вы можете изменить свое регулярное выражение на 5 независимых потому что он состоит из 127 альтернатив .Он имеет шаблон (a | b | c | d | e | ...), но каждая альтернатива также содержит группы захвата.Проверьте ссылку на объяснение регулярных выражений regex101 .Просто убедитесь, что у каждого регулярного выражения есть менее 100 групп захвата.

Надеюсь, это поможет вам решить проблему.

...