如何修复HTML中提取的纯文本的句子间距?

时间:2011-04-28 23:07:27

标签: php html parsing whitespace simpledom

我正在从特定网址中提取文章以转换为句子,但文本正文具有消除某些句子之间空格的随机行为,从而导致:

Jane went to the store.She bought a dog. The dog was very friendly.It had no teeth.

我的一些文字是股票代码(AZ.GAN)等。所以我不能简单地在所有没有相邻空格的句点之间插入一个空格。

Jane bought several shares of (TY.JPN). She lost all her cash money."Arg!" She cried.

上面的例子会破坏股票代码变量。

好奇,如果有人知道这个的原因。我尝试了几个HTML和DOM。我使用Simple_DOM来获取明文。虽然,如果我手动或使用任何其他解析引擎,我会得到相同的结果。

2 个答案:

答案 0 :(得分:3)

不幸的是,我没有针对您的具体问题的方法,但是句子之间缺少的空间是否可能是一个换行符(例如\ n),您的文本查看器(无论它是什么)没有显示给您?

也许尝试这样的事情只是为了确保

var articleContent = ... // get content
articleContent = articleContent.replace(/\n/g, ' NEW LINE ');

答案 1 :(得分:1)

尝试做:

$str = trim(preg_replace('~([(].+?[.])\s(.+?[)])~', '$1$2', str_replace('.', '. ', $str)));