#python-3.x
Вопрос:
Sentence : "I went to hospital and admitted. Date of admission: 12/08/2019 and surgery of Date of surgery: 15/09/2015. Date of admission: 12/05/2018 is admitted Raju"
keyword: "Date of admission:"
Необходимое решение: 12/08/2019,12/05/2018
Есть ли какое-либо решение, чтобы получить даты рядом с «Датой поступления:» только. Есть ли какое — нибудь решение
Комментарии:
1. Ваше требуемое решение, похоже, запрашивает только даты сразу после
"Date of admission"
, но одна из них — дата после"surgery"
2. @ddejohn Только дата должна быть указана после даты поступления: Не следует принимать дату операции:
3. Да, но вторая дата в «требуемом решении», которое вы указали, указана после «операции».
4. Извините, что я отредактировал
Ответ №1:
Я не смог воспроизвести результат в ответе @Ders. Плюс, я думаю .findall()
, что в любом случае здесь более уместно, так что:
import re
pattern = re.compile(r"Date of admission: (d{2}/d{2}/d{4})")
print(pattern.findall(s))
# ['12/08/2019', '12/05/2018']
Ответ №2:
Используйте группу захвата. Если re совпадает, то вы можете получить содержимое группы.
import re
p = re.compile("Date of admission: (d{2}/d{2}/d{4})")
dates = p.findall(sentence)
# ["12/08/2019", "12/05/2018"]
Комментарии:
1. Я не могу воспроизвести ваш результат на своей машине —
p.match(s)
возвращаетNone
для меня.2. импорт re s = «Я пошел в больницу и поступил. Дата поступления: 12/08/2019, а дата операции: 15/09/2015. Дата поступления: 12/05/2018 принят Раджу» p = re.findall(«Дата поступления: (d{2}/d{2}/d{4})») печать(p)
3. Не могу использовать re.findall