我有兩個HTML頁面,其源代碼要比較。我已將頁面源代碼轉換爲字符串,並且我需要知道什麼是比較兩個巨大字符串的最佳方式。如何有效比較兩個HTML頁面內容
- 我應該使用正常的比較方法,例如
page1.eql?(page2)
? str.eql?(str1)
也比較符號,例如@
?
我真的很感激知道比較的最佳方法。
我有兩個HTML頁面,其源代碼要比較。我已將頁面源代碼轉換爲字符串,並且我需要知道什麼是比較兩個巨大字符串的最佳方式。如何有效比較兩個HTML頁面內容
page1.eql?(page2)
?str.eql?(str1)
也比較符號,例如@
?我真的很感激知道比較的最佳方法。
我不確定您希望比較的詳細程度如何。如果你想要「diff-like」功能,你可以查看以前類似的問題:diff a ruby string or array
這是levenshtein方法,它會打印字符串之間的差異,我不確定這是你的尋找。否則,我只想用page1.eql建議?(第2頁)
def levenshtein(a, b)
case
when a.empty? then b.length
when b.empty? then a.length
else [(a[0] == b[0] ? 0 : 1) + levenshtein(a[1..-1], b[1..-1]),
1 + levenshtein(a[1..-1], b),
1 + levenshtein(a, b[1..-1])].min
end
end
退房的loofah
寶石(github link)。它DIFFS HTML(和XML)子樹語義,這意味着無意義的空白將被忽略,屬性的順序被忽略,等
儘管它確實非常好,但該項目自2012年以來沒有見過提交。 – NicolasWebDev
嘗試使用http://prettydiff.com/?lang=html
漂亮DIFF將去掉了大部分意見和無意義的空白準確的比較。它還提供了用於微調不同類型假陽性條件的高級選項。
你只是想知道如果有區別?你是否也將其中一個文件與其他許多文件進行比較? – moritz
您將頁面源代碼轉換爲字符串?他們之前是什麼?爲什麼不是一個簡單的字符串比較足夠?當您嘗試將'@'與'@'進行比較時發生了什麼?你看過'diff'嗎?你有什麼嘗試? –
我想知道內容是否不同,並提取差異以供進一步分析。 – amjad