Давайте этот текст:Получить несколько групп захвата в другом порядке?
2343 abcd
ajek 4827
1231 skj0
И это регулярное выражение:
/(?:(?P<number>\d{4})\s+(?P<text>\w{4})|(?P<text>\w{4})\s+(?P<number>\d{4}))/Jg
DEMO: https://regex101.com/r/yN9zK4/1
Если цель состоит в том, чтобы получить это:
{{ number: 2343, text: abcd },
{ number: 4827, text: ajek },
{ number: 1231, text: skj0 }}
С pcre и perl У меня есть не проблема, чтобы заставить мое регулярное выражение работать.
Кажется, что Python не предлагает опцию J
. Как я могу заставить его работать с Python, используя другие механизмы, чем регулярные выражения?
Я не думаю, что это возможно с Python re или даже пакетом regex использовать одно и то же имя для разных групп захвата. – nhahtdh
Хорошо, я должен обновить свой вопрос, а затем – nowox
Кроме регулярного выражения, я думаю, вы можете использовать более общее регулярное выражение (оба токена '\ w +') для соответствия строке и извлечение 2 токенов, затем выполните еще один тест, чтобы их классифицировать. – nhahtdh