将文档分为段落

时间:2016-04-18 13:04:28

标签: java regex

我想把我的文件分成段落。

首先,我使用TIKA从(PDF,DOC)格式中提取文本。

在此之后,我使用temp.xml将文本分成几行。

Split()

然后我使用正则表达式提取特定信息(例如公司名称,名称,忠诚度)。

它有效,直到我有一个分为多行的段落 即:

  

在Lycatel B.O.S.工作。 (P)有限公司印度办事处,Chennai担任电信   计费分析师于07年10月22日至2008年6月3日。

它将分为:

String[]lines=handler.toString().split("\n");\\handler from TIKA that extract the whole text from document

因为我为每个段落应用paragraph [1] : Worked in Lycatel B.O.S. (P) Ltd. India Office, Chennai as Telecom paragraph [2] : Billing Analyst from 22nd October 07 to 3rd June 08.

Matcher

提取的数据是错误的,因为2行应该在同一段落中。

我尝试根据Matcher matcher = pattern.matcher(paragraphs[i]); 分割文字:

.

但是,名称中包含String[]lines=handler.toString().split("."); 的公司也会被吐出。例如:

  

Lycatel B.O.S. (P)Ltd。

我如何划分文字,以便段落.将一直到句号([i])?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用(?sm)^.*?\\.$但我怀疑您可以使用正则表达式来解决您的问题。

(?s)是dotall标记,它会使.匹配换行符 (?m)是多行标记,因此$将匹配行尾(而不仅仅是字符串的结尾)。
因此,使用此正则表达式,我们会根据需要匹配尽可能多的字符(包括换行符),然后才能匹配位于其行尾的.

您可以在regex101上尝试。