Я использую python и модуль re
для синтаксического анализа некоторых строк и извлечения 4-значного кода, связанного с префиксом. Вот 2 примера строк я бы разобрать:python regex: группа захвата внутри OR
str1 = "random stuff tokenA1234 more stuff"
str2 = "whatever here tokenB5678 tokenAand more there"
tokenA и tokenB являются префиксы и 1234, 5678,являются цифры, мне нужно, чтобы захватить. токены A и B являются лишь примером. Префикс может быть чем-то вроде адреса http://domain.com/
(tokenA) или строки типа Id:
('[Ii]d:?\s?'
) (tokenB).
Моя регулярное выражение выглядит следующим образом:
re.findall('.*?(?:tokenA([0-9]{4})|tokenB([0-9]{4})).*?', str1)
При разборе 2 строки выше, я получаю:
[('1234','')]
[('','5678'),('0123','')]
И я хотел бы, чтобы просто получить ['1234']
или ['5678','0123']
вместо кортежа. Как я могу изменить регулярное выражение для достижения этого? Заранее спасибо.