2012-12-21 43 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 
相關問題