2013-01-14 56 views
2

我需要从一堆文件中替换一些句子。所有句子几乎相同,但在某些文档中有间断,缺失或添加单词/字符。我试图匹配第一个和最后一个单词,但那不是准确的。preg_replace,只是几乎匹配

有没有办法或没有人有一个想法如何替换几乎匹配的句子?

例子 假设我想替换下面的句子。

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt

这里是休息

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 
sed diam nonumy eirmod tempor invidunt

句子缺少逗号

Lorem ipsum dolor sit amet, consetetur sadipscing elitr 
sed diam nonumy eirmod tempor invidunt

和丢失的话

Lorem ipsum dolor sit amet sadipscing elitr, sed diam nonumy invidunt
+0

这是可能的,但你的正则表达式可能最终会被thiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiis长。我不确定本地支持。 –

+0

您首先必须定义您的句子**必须包含哪些单词/字符。一旦定义好了,然后把'。*'或者一些更强的约束(例如(,| \。| \ n | \ t){0,3},不超过3或者换行符或制表符)必备品。 –

+1

我会开始试图规范你的字符串。即。你可以说没有逗号的行尾应该有它,或者一些单词与你的字符串无关,所以你只需删除它们。对你的字符串有一些逻辑,否则将很难替换它们。 –

回答

1

未测试,但检查出similar_text();

<?php 
$threshold = 80; //Percentage threshold 
    $par1 = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt"; 
    $par2 = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 
    sed diam nonumy eirmod tempor invidunt"; 

    $percent = similar_text($par1,$par2); 
    if ($percent < $threshold) { 
     //Correct the incorrect paragraph 
     $par2 = $par1; 
    } 
    ?> 
+0

但是...我会有一个不匹配所有内容的阈值。 –