Как извлечь отформатированную строку с помощью регулярных выражений в Python? - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь найти регулярное выражение в Python3, которое извлекает отформатированную строку из входного текста: Общий формат строки: 4 символа в верхнем регистре, за которыми следуют 3 числа

Ввод:

"JFFC002    /0 EXÉRÈSE LÉS. RÉTROPÉRIT. COELIO 
KFFA001 /0 EXÉRÈSE T. PARAPHARYNGIENNE CERV.TOMIE LACA004   /0 O.S FRAC. ANT. SINUS FRONTAL AB. CORONAL LACA014 /0 O.S FRAC. BILAT. ANT. SINUS FRONTAL AB. CORONAL "

Вывод:

['JFFC002' , 'KFFA001' ,'LACA004', 'LACA014' ]

Я ценю вашу помощь!

1 Ответ

1 голос
/ 15 марта 2020

Вы можете использовать re.findall со следующим шаблоном:

s = '''"JFFC002 /0 EXÉRÈSE LÉS. RÉTROPÉRIT. COELIO
KFFA001 /0 EXÉRÈSE T. PARAPHARYNGIENNE CERV.TOMIE LACA004   /0 O.S FRAC. ANT. SINUS FRONTAL AB. CORONAL LACA014 /0 O.S FRAC. BILAT. ANT. SINUS FRONTAL AB. CORONAL "'''

import re

re.findall(r'[A-Z]{4}[0-9]{3}', s)
# ['JFFC002', 'KFFA001', 'LACA004', 'LACA014']

См. demo

  • Соответствует одному символу присутствует в списке ниже [A-Z]{4}
    • {4} Квантификатор - соответствует ровно 4 раза
    • A-Z одному символу в диапазоне от A (индекс 65) до Z (индекс 90) (с учетом регистра)
  • Соответствует одному символу, представленному в списке ниже [0-9]{3}
    • {3} Квантор - соответствует точно 3 раза
    • 0-9 один символ в диапазоне от 0 (индекс 48) до 9 (индекс 57) (с учетом регистра)
...