2013-07-23 53 views
0

我已經使用tika爲某些pdf文件提取文本並將文本存儲在文本文件中。 現在我想解析這些文件使用opennlp塊解析器,但我無法解析文件行,因爲它包含一些特殊字符(一些方形類型的符號)之間沒有空間之間的空間,我的文本文件中的示例行(無法顯示這些方型符號,變音符號)刪除文件行中除白色空格以外的所有特殊字符

51.2.3 Troubleshooting DHCP Configuration ? 
62 Module 3: Point-to-Point Protocol (PPP) ? 
62.1 Configuring HDLC Encapsulation ? 

所以我想以線條爲

Troubleshooting DHCP Configuratin 
Module 3: Point-to-Point Protocol(PPP) 
Configuring HDLC Encapsulation 

請建議我如何做到這一點?

回答

0
  1. 閱讀文件line by line
  2. 用「」替換這些行中的不需要的字符:「line = line.replaceAll("^\\d{2}(\\.\\d)+ +", "").replaceAll(" +\\?$", "");
  3. 使用FileWriter寫入文件。

這假定行開頭的數字格式是dd(.d)*,其中d是一個數字,第一個數字後的每個部分只有一個數字。否則,必須更改正則表達式以適合您的格式。

通過追加.replaceAll("[æ╚]", "");將所有這些字符添加到方括號中去除神祕的符號。確保你有正確的編碼。如果您使用「UTF-8」讀取文件,則必須在編輯器中複製這些字符,您可以指定該文件爲「UTF-8」。

+0

嗨,我的線都沒有在特定的格式,我不能寫一個正則表達式,還有沒有其他的解決方案 – user2609542

+0

您仍然可以使用正則表達式,如果沒有特定的格式,但特定的字符。要刪除所有不可打印的字符,請使用'replaceAll('[^ \\ p {Print}]',「」)'。要替換特定字符,請使用上面的替換方法列出字符。你甚至可以用'replaceAll('[\\ W]',「」)'刪除不在A-Za-z0-9中的所有東西。 –

0

用空格替換所有非單詞字符是否夠用,或者至少在正確方向上邁出了一步?

str = str.replaceAll("\\W+", " "); 
相關問題