从文本行中删除除空格之外的所有特殊字符

时间:2013-07-23 07:29:47

标签: java file apache-tika opennlp

我使用tika为一些pdf文件提取文本并将文本存储在文本文件中。 现在我想使用opennlp Chunk解析器解析这些文件,但我无法解析文件行,因为它包含一些特殊字符(一些方形符号),单词之间没有空格,我的文本文件中有样本行(无法显示那些方形符号,变音符号)

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

请建议我怎么做?

2 个答案:

答案 0 :(得分:0)

  1. 阅读文件line by line
  2. 使用“”:line = line.replaceAll("^\\d{2}(\\.\\d)+ +", "").replaceAll(" +\\?$", "");
  3. 替换每行中不需要的字符
  4. 使用FileWriter撰写文件。
  5. 这假设行开头的数字格式为dd(.d)*,其中d是一位数,第一位数后面的每个部分只有一位数。否则,必须更改正则表达式以适合您的格式。

    通过附加.replaceAll("[æ╚]", "");将所有这些字符添加到方括号中来删除神秘符号。确保您拥有正确的编码。如果您使用“UTF-8”读取文件,则必须在编辑器中复制这些字符,您可以在其中指定此文件为“UTF-8”。

答案 1 :(得分:0)

用空白替换所有非单词字符是否足够,或者至少朝正确的方向迈出一步?

str = str.replaceAll("\\W+", " ");