#python-3.x #regex #data-extraction
#python-3.x #регулярное выражение #извлечение данных
Вопрос:
У меня есть столбец текстовых данных, которые я преобразую в строку с помощью функции ‘,’.join(). Данные приведены, как показано ниже. Я хочу извлечь только АД / артериальное давление / систолическое артериальное давление и соответствующие ему значения из преобразованной строки.
Я знаю, что должен использовать re.findall(). Но я не могу получить значения, поскольку существует несколько условий.
Я хочу, чтобы значения BP отмеченных строк изображений, показанных ниже.
Я хочу, чтобы все эти варианты были извлечены с помощью функции регулярных выражений.
Код, который у меня есть на данный момент, получает только первый вариант. Я хочу расширить это дальше, чтобы получить все варианты.
list_items = file['Text'].tolist()
listToStr = ','.join([str(elem) for elem in list_items])
def get_BP(s):
#s = s.lower()
#print(s)
#regex = r'(BP d /d )'
regex = r'((?:BP|Blood Pressure) d /d )'
try:
return re.findall(regex,s)
except:
pass
x = get_BP(listToStr)
x
Результат, который я хочу, наконец, выглядит примерно так.
['BP 98/60', 'BP 108/60', 'BP 96/60', 'BP 120/75', 'Blood Pressure 106/63',
'B/P - Systolic 104','B/P - Diastolic 72','BP-Sitting 109/70 mmH',
'BP: 101/72','Systolic Blood Pressure 100 mmHg','Diastolic Blood Pressure 68 mmHg']
Поскольку я новичок в функциях регулярных выражений, буду признателен за любую помощь.
Спасибо.
Комментарии:
1. Пожалуйста, отправьте код в виде обычного текста, а не снимков экрана.
2. Выполнено. Если это вам поможет. Спасибо
Ответ №1:
На основе списка с желаемыми результатами вы можете использовать чередование |
, чтобы указать все варианты.
b(?:BP:?(?:-Sitting)?|Blood Pressure) d /d (?: mmHg?)?|B/P - (?:Sys|Dias)tolic d |(?:Sys|Dias)tolic Blood Pressure d w b
Комментарии:
1. Большое спасибо. Действительно спасла меня. Я ломал голову в течение 3 часов.
2. Последующий вопрос. Теперь что, если у нас есть такой пример — BP 128/80 128/81 128/82 128/83. Я хочу извлечь все 4 последовательных значения. Наряду со всеми другими условиями, приведенными выше.