Regex从文本中提取标题



谁能帮我用正则表达式从下面的文本中提取出'Title:'后面的文本短语吗?(我只是把文本加粗,以清楚地描述要提取的部分)

标题:肛管直肠瘘(瘘管)程序规范:生效日期:7/1/07标题: 2003247 或以前的生效日期)标题:慢性心力衰竭ST2检测描述/背景心脏衰竭心衰是许多心血管疾病之一,是发病率的主要原因以及全世界的死亡率。术语"心力衰竭"(HF)是一种复杂的临床综合征。

我使用正则表达式:(?:Title: n+(.*))|(?:Title:n+(.*))|(?<=Title: )(.*)(?=Procedure)

然而,它似乎没有正确地捕获术语!我使用Python 2.7.12

我建议使用

 Title:s*(.*?)s*Procedure|Title:s*(.*)

参见regex演示。

细节

:

  • Title: -文字Title:
  • s* - 0+空白
  • (.*?) -组1:除换行符号外的任何0+字符尽可能少,直到第一个
  • s*Procedure - 0+空格+字符串Procedure
  • | -或
  • Title:s* - Title: string + 0+ whitespaces
  • (.*) -第二组:除换行符号外,尽可能多地使用零或更多字符(行的其余部分)。
Python代码:

import re
regex = r"Title:s*(.*?)s*Procedure|Title:s*(.*)"
test_str = ("Title: Anorectal Fistula (Fistula-in-Ano) Procedure Code(s):nn"
    "Effective date: 7/1/07nn"
    "Title:nn"
    "2003247nn"
    "or previous effective dates)nn"
    "Title:nn"
    "ST2 Assay for Chronic Heart Failurenn"
    "Description/Backgroundnn"
    "Heart Failurenn"
    "HF is one among many cardiovascular diseases that comprises a major cause of morbidity and mortality worldwide. The term “heart failure” (HF) refers to a complex clinical syndrome .")
res = []
for m in re.finditer(regex, test_str):
    if m.group(1):
        res.append(m.group(1))
    else:
        res.append(m.group(2))
print(res)
# => ['Anorectal Fistula (Fistula-in-Ano)', '2003247', 'ST2 Assay for Chronic Heart Failure']

相关内容

  • 没有找到相关文章

最新更新