#python #python-3.x
Вопрос:
keyword1 = ['Admit:']
Keyword2 = ['Discharge:']
Sentence = "Admit: 15/06/2019 was been in HR hospital. This is usual precaution for accidents. Discharge: 18/06/2019 discharged from A/C room. This is from BRK Hospital.
Пробовал: (Неверный код)
import re
a = "Admit: 15/06/2019 was been in HR hospital. This is usual precaution for accidents. Discharge: 18/06/2019 discharged from A/C room. This is from BRK Hospital."
x = re.findall("^Admit: [.]$", a)
print(x)
Необходимое решение:
Admit: 15/06/2019 was been in HR hospital.
Discharge: 18/06/2019 discharged from A/C room. This is from BRK Hospital.
Есть ли какое-либо решение, которое для приема: ключевое слово нужно использовать только до первого полного останова, а для выгрузки: ключевое слово должно занимать до двух полных остановок с использованием регулярного выражения
Ответ №1:
Поскольку вы ищете первую полную остановку после Признания:, вы можете использовать это:
x = re.findall("^Admit:[^.]*.", a)
Для второй части вы можете просто позволить ей найти до конца:
x = re.findall("Discharge:.*", a)
Комментарии:
1. Но для «Выписки: 18/06/2019 выписан из комнаты с кондиционером. Это из больницы БРК». Это не конец предложения, но после этого могут быть другие строки. Как найти точные две полные остановки?
2. Вы могли бы просто повторить аспект Признания дважды. Для получения более подробной информации ознакомьтесь с docs.python.org/3/howto/regex.html
3. a = «Признаться: 15/06/2019 находился в больнице HR. Это обычная мера предосторожности при несчастных случаях. Выписка: 18/06/2019 выписан из комнаты с кондиционером. Это из больницы БРК.»y = re.findall(«^Выписка:[^.]*.», a)печать(y)…..Не удалось получить решение «Выписка: 18/06/2019 выписан из кондиционера».
4. Так как ключевое слово разрядки не находится в первом индексе
Ответ №2:
Вот один из подходов:
import re
Sentence = "Admit: 15/06/2019 was been in HR hospital. This is usual precaution for accidents. Discharge: 18/06/2019 discharged from A/C room. This is from BRK Hospital."
admit = re.search(r'(^Admit:.*?)..*(Discharge:.*)', Sentence)
print (admit.group(1))
# Extract data until second full stop
print ('.'.join(admit.group(2).split('.')[:2]))
Выход:
Admit: 15/06/2019 was been in HR hospital
Discharge: 18/06/2019 discharged from A/C room. This is from BRK Hospital