我想把我的文件分成段落。
首先,我使用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]
)?
答案 0 :(得分:1)
您可以尝试使用(?sm)^.*?\\.$
但我怀疑您可以使用正则表达式来解决您的问题。
(?s)
是dotall标记,它会使.
匹配换行符
(?m)
是多行标记,因此$
将匹配行尾(而不仅仅是字符串的结尾)。
因此,使用此正则表达式,我们会根据需要匹配尽可能多的字符(包括换行符),然后才能匹配位于其行尾的.
。
您可以在regex101上尝试。