繁体   English   中英

使用正则表达式解析年份和文本

[英]Year and Text Parsing with Regex

我正在尝试以Apr 2022 - Present + (the text after until the next date)Apr 1874 - Dec 1958 + (the text after until the next date)的格式从文本中提取数据,以便稍后使用 NLP 进行处理.

例子:

2018 年 4 月至今 lm Senior NurseWoodfield Hospital, Ipswich© 通过监测生命体征和用药为 ICU 病房进行重大外科手术后的 6 名老年患者提供日常护理© 与医生合作制定住院后的长期护理计划。监督 4 名认证护士在单位工作的助理 (CNA) 2014 年 2 月 - 2018 年 3 月 mm 注册护士 Ashfield Care Home, Kent© 与单位经理一起照顾 36 名有复杂健康需求的体弱和老年患者。© 负责按照护理助产士标准安全用药Council guidelines.© 管理单位的收入和预算,包括患者护理、设备和员工用品的资金分配。2043 年 11 月 - 2014 年 1 月 lm Healthcare AssistantChase Care Home, Suffolk« 负责老年人的安全和福祉痴呆症和具有挑战性的行为。与姑息治疗团队合作,帮助为患者提供临终关怀。

预期结果:[“2018 年 4 月至今 lm Senior NurseWoodfield Hospital, Ipswich© 通过监测生命体征和给药,为 ICU 病房进行重大外科手术后的 6 名老年患者提供日常护理© 与医生合作制定住院后的长期护理计划.Supervised 4 Certified Nursistants (CNAs) working in the unitFeb, "Feb 2014 - Mar 2018 mm Registered NurseAshfield Care Home, Kent© 与单位经理一起照顾 36 名身体虚弱且有复杂健康需求的老年患者。© 负责根据护理助产委员会指南安全给药。© 管理单位的收入和预算,包括用于患者护理、设备和员工用品的资金分配”,“2043 年 11 月 - 2014 年 1 月 lm Healthcare AssistantChase Care Home, Suffolk« 负责为了患有痴呆症和具有挑战性行为的老年人的安全和福祉。与姑息治疗团队合作,帮助实现最终目标对患者的生命关怀。”]

这是我写的代码。 我无法修复它

year_pattern = re.compile(r"((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[.]?[\s-]\d{4}) - (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[.]?[\s-]\d{4} | (Present |present")

year = ''.join(year_pattern.findall(text)).strip()

可能不是最好看的解决方案,但这对我有用:

pattern = "(?=Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|present|Present [0-9]{4} -)"
splitted = re.split(pattern, text)
print(splitted)
result = []
i = 0
while i < len(splitted):
  result.append(splitted[i] + splitted[i + 1])
  i += 2

print(result)

请您尝试以下操作:

pat = re.compile(r"((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.?[\s-]\d{4} - (?:(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\.?[\s-]\d{4}|[Pp]resent))")

m = pat.split(text)
print([m[i] + m[i+1] for i in range(1, len(m), 2)])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM