2つのHTMLページがあり、そのソースコードを比較したいと思います。ページソースを文字列に変換しました。両方の巨大な文字列を比較するための最良の方法を知る必要があります。
- 通常の比較方法を使用し
page1.eql?(page2)
ますか? str.eql?(str1)
記号も比較します@
か?
比較のための最良のアプローチを知っていただければ幸いです。
比較をどの程度詳細にしたいかわかりません。「diffのような」機能が必要な場合は、以前に尋ねられた同様の質問を確認できます。ルビー文字列または配列をdiffします。
これは、文字列間の違いを出力するレーベンシュタイン距離です。それがあなたが探しているものかどうかはわかりません。それ以外の場合は、page1.eql?(page2)を使用することをお勧めします
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
gem(github link )をチェックしてください。HTML(およびXML)サブツリーを意味的に比較します。つまり、意味のない空白は無視され、属性の順序は無視されます。
http://prettydiff.com/?lang=htmlを使用してみてください
Pretty Diffは、最も正確な比較のためにコメントと無意味な空白を取り除きます。また、さまざまな種類の誤検知条件を微調整するための高度なオプションも提供します。