0

我不确定这是否可能,如果这听起来有点模糊,很抱歉。在 JavaScript 中,我将字符串与 Photoshop 中文本层中的字符串(文本内容)进行匹配。这对短字符串来说很好。但是,对于较长的字符串,由于缺少句号或具有前导空格或包含换行符或缺少逗号(由于定界),它们可能不匹配。

我想更好的方法是完全匹配第一个,比如 16 或 32 个字符,然后保留它。但我想知道你是否可以在百分位的基础上匹配字符串;并接受超过 90% 的(宽误差,我知道,但字符串不太可能相似)我将如何处理?有没有像模糊正则表达式这样的东西?

谢谢你。

4

4 回答 4

5

看来您需要的不是完全匹配,而是字符串相似度的度量。

有这样的措施。它被称为Levenshtein 距离。我用谷歌搜索,发现了几个 JavaScript 实现。您可以考虑改用这种方式。

于 2012-12-21T08:04:49.320 回答
3

您可以通过替换删除所有空白、点和其他不相关的内容,并尝试将剩余文本与您的正则表达式匹配。这有点模糊:) 因为你丢失了一些令牌,但仍然会给你正确的结果。例如,不要搜索“XXX YYY”,而是搜索“XXXYYY”。

于 2012-12-21T08:01:34.607 回答
1

有一些近似的正则表达式实现,例如agrep虽然从您的问题中不清楚将它用于您的特定问题是否可行。

于 2012-12-21T13:20:43.423 回答
0

您可以使用 php 轻松实现此目的:

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

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

echo $percent; 
// 27.272727272727 
于 2015-05-05T18:31:40.127 回答