Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将文件分成段落_Java_Regex - Fatal编程技术网

Java 将文件分成段落

Java 将文件分成段落,java,regex,Java,Regex,我想把我的文件分成几段 首先,我使用TIKA从(PDF,DOC)格式中提取文本 在此之后,我使用Split()将文本分成几行 String[]lines=handler.toString().split("\n");\\handler from TIKA that extract the whole text from document 然后我使用regex提取特定信息(例如公司名称、名称、忠诚度) 直到我有了一个分成许多行的段落,它才能完美地工作 i、 e: 曾在利卡特B.O.S.(p)有限

我想把我的文件分成几段

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

在此之后,我使用
Split()
将文本分成几行

String[]lines=handler.toString().split("\n");\\handler from TIKA that extract the whole text from document
然后我使用regex提取特定信息(例如公司名称、名称、忠诚度)

直到我有了一个分成许多行的段落,它才能完美地工作 i、 e:

曾在利卡特B.O.S.(p)有限公司印度钦奈办事处担任电信部工作 计费分析员从2007年10月22日至2008年6月3日

它将分为:

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

Matcher matcher = pattern.matcher(paragraphs[i]);
提取的数据将是错误的,因为这两行应该在同一段中

我试图根据
拆分文本:

String[]lines=handler.toString().split(".");
然而,名字中包含
的公司也将被唾弃。例如:

利卡特B.O.S.(p)有限公司

我如何划分我的文本,使段落
[I]
一直到句号(
)?

您可以尝试使用
(?sm)^.*.\.$
,但我怀疑您是否能找到解决regex问题的完美方法

(?s)
是dotall标志,它将使
匹配换行符。
(?m)
是多行标志,因此
$
将匹配行尾(而不仅仅是字符串的末尾)。
因此,使用这个regexp,我们可以根据需要匹配尽可能多的字符(包括换行符),然后才能匹配位于其行末尾的


你可以试穿一下。

是一个段落,在你的文本中,总是以一个
结尾吗?是的,它总是以(.)结尾,然后以
拆分(“.\n”)
在某些情况下效果不错,但是如果段落不是以\n结尾,而是以\t结尾,例如(**段落1.段落2.\n段落3)?答案是:)