2012-12-21 44 views
0

的我不知道这是可能的,很抱歉,如果这听起来有点含糊。在JavaScript中,我使用Photoshop中的文本图层(文本内容)匹配字符串。这一切都很好,短弦。 但是,如果字符串较长,则可能由于错过了句号或领先的空格或者包含换行符或缺少逗号(由于分隔)而不匹配。正则表达式90%串

我想一个更好的方式是完全匹配的第一个,说16个或32个字符,并留在这一点。但我想知道你是否可以在百分比基础上匹配字符串;并接受90%以上的错误(宽误差,我知道但字符串不可能是相似的)我该如何解决这个问题?有没有像模糊正则表达式?

谢谢。

+1

向我们展示你的输入字符串和预期结果。 :)你有什么尝试? – bonCodigo

+5

不确定模糊正则表达式,但肯定存在模糊问题。 – NPE

回答

3

您可以删除所有空格,点和其他无关的东西被用置换,并尝试以您的正则剩余的文本匹配。这是某种模糊的:)因为你失去了一些令牌,但仍然会给你正确的结果。例如,而不是搜索'XXX YYY'搜索'XXXYYY'。

+1

+1,因为我会说同样的东西 – ChelseaStats

5

看来,你需要的是不完全匹配,但字符串的相似程度。

有这样的量度。它叫做Levenshtein distance。我GOOGLE了它,并发现了几个JavaScript实现。您可以考虑改为这样。

1

有近似的正则表达式imlementations如agrep虽然它从你的问题还不清楚是否会使用它为您的特定问题的可行。

+0

我还没有听说过agrep,但我会研究它。谢谢。 –

0

您可以轻松地使用PHP实现这一点:

$var_1 = 'PHP IS GREAT'; 
$var_2 = 'WITH MYSQL'; 

similar_text($var_1, $var_2, $percent); 

echo $percent; 
// 27.272727272727 
相关问题