2017-01-03 2 views
0

В настоящее время я работаю над большим сценарием обработки данных в Python, который использует подпроцессы для извлечения строк текста из файлов. Строки, которые я получаю в формате:Regex соответствует первой и третьей группам чисел между специальными символами

-R##/##/##/##

Примером этого может быть -R-120/-115/-30/-20 (четыре цифры могут быть положительными или отрицательными)

Я пытаюсь придумать выражение регулярного выражения для соответствия первому и третьему номерам, поэтому для приведенного выше примера мне понадобится -120 и -30.

Может ли кто-нибудь направить меня в правильном направлении для чистого способа сделать это?

+0

'R'-R ([+ - \ d] +)/[+ - \ d] +/([+ - \ d] +)/[+ - \ d] + ''Скобки представляют собой« группу захвата » –

+0

У положительных чисел есть' + 'впереди или просто отсутствие' -' ? – moogle

+0

@moogle Положительные номера ничего не имеют перед собой. – Harrison

ответ

1

Вы можете использовать это регулярное выражение в питона с 2 группами захвата, чтобы захватить ваши номера:

>>> s = '-R-120/-115/-30/-20' 
>>> print re.findall(r'^\D*?([-+]?\d+)\D*?[-+]?\d+\D*?([-+]?\d+)', s) 

[('-120', '-30')] 

RegEx Demo