我不确定这是否可行,如果这听起来有点含糊,那就很抱歉。在JavaScript中,我将字符串与Photoshop(文本内容)中的文本图层中的字符串进行匹配。短串的这一切都很好。 但是,如果字符串较长,则可能因为缺少完整停止或有前导空格或包含换行符或缺少逗号(由于分隔)而无法匹配。
我想更好的方法是精确匹配第一个,比如16或32个字符,然后保留它。但我想知道你是否可以在百分位数的基础上匹配字符串;并接受超过90%的那些(宽误差范围,我知道但字符串不太可能相似)我怎么会这样做?是否存在模糊正则表达式的东西?
谢谢。
答案 0 :(得分:5)
似乎你需要的不是完全匹配,而是字符串相似性的度量。
有这样的措施。它被称为Levenshtein distance。我用Google搜索,发现了几个JavaScript实现。你可以考虑采用这种方式。
答案 1 :(得分:3)
您可以使用替换删除所有空格,圆点和其他不相关的内容,并尝试将剩余文本与正则表达式匹配。这有些模糊:)因为你丢失了一些令牌,但仍会给你正确的结果。例如,不要搜索“XXX YYY”搜索“XXXYYY”。
答案 2 :(得分:1)
有一些近似的正则表达式,例如agrep虽然从你的问题中不清楚是否可以将它用于你的特定问题。
答案 3 :(得分:0)
您可以使用php轻松实现此目的:
$var_1 = 'PHP IS GREAT';
$var_2 = 'WITH MYSQL';
similar_text($var_1, $var_2, $percent);
echo $percent;
// 27.272727272727