如何在键和值(或任何其他格式)中使用python拆分文件

时间:2016-10-31 18:33:51

标签: java python python-2.7 python-3.x machine-learning

假设我有一个doc文件,其中包含以下内容

  

治疗重点和评估:描述(1)类型的干预措施(如药理学,外科学,预防,生活方式,   自我照顾)和(2)干预的管理和强度   (包括剂量,强度,持续时间,频率)。

     

随访和结果:请描述本病例的临床过程,包括所有随访以及(1)干预   修改,中断或停止,原因; (2)   坚持干预以及如何评估;

     

讨论:请描述本案例报告的优势和局限,包括案例管理,科学和   与本病例报告相关的医学文献。

在此文件中,我想分隔每个标题及其内容。这意味着我将有3个标题,3个包含。我想把标题作为关键和内容作为其价值。如何使用正则表达式过滤此信息。

文件结构变化不大:(附加问题)

  

治疗重点和评估:描述(1)类型的干预措施(如药理学,外科学,预防,生活方式,   自我照顾)和(2)干预的管理和强度   (包括剂量,强度,持续时间,频率)。

     

讨论:

     

请描述本案例报告的优势和局限,包括案例>管理,科学。 健康:与此相关的医学文献>病例报告。

如果我有这个文件之王,其中第一段中的内容在第二段中,并且在第二段中它有一个行间隙。另一部分也包含在同一段中。在那种情况下,我将如何拆分?

1 个答案:

答案 0 :(得分:0)

这是一种基于字符而不是正则表达式进行拆分的方法。

String document = "Header: blah blah \n Header: blah blah"

String[] sections = document.split("\n");
String[] headers = new String[sections.length];
String[] bodies = new String[sections.length];;

for(int i = 0; i < sections.length; i++){
      headers[i] = sections[i].split(":")[0];
      bodies[i] = sections[i].substring(headers[i].length() + 2);
}

相同的拆分方法适用于正则表达式模式,如果你有一些更复杂的东西除以回车和“:”,但从它的外观来看,这可能适合你。