0

2つのHTMLページがあり、そのソースコードを比較したいと思います。ページソースを文字列に変換しました。両方の巨大な文字列を比較するための最良の方法を知る必要があります。

  • 通常の比較方法を使用しpage1.eql?(page2)ますか?
  • str.eql?(str1)記号も比較します@か?

比較のための最良のアプローチを知っていただければ幸いです。

4

4 に答える 4

1

比較をどの程度詳細にしたいかわかりません。「diffのような」機能が必要な場合は、以前に尋ねられた同様の質問を確認できます。ルビー文字列または配列をdiffします。

于 2012-11-14T14:32:24.833 に答える
1

これは、文字列間の違いを出力するレーベンシュタイン距離です。それがあなたが探しているものかどうかはわかりません。それ以外の場合は、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
于 2012-11-14T14:36:27.750 に答える
0

loofahgem(github link )をチェックしてください。HTML(およびXML)サブツリーを意味的に比較します。つまり、意味のない空白は無視され、属性の順序は無視されます。

于 2012-11-15T22:23:08.307 に答える
0

http://prettydiff.com/?lang=htmlを使用してみてください

Pretty Diffは、最も正確な比較のためにコメントと無意味な空白を取り除きます。また、さまざまな種類の誤検知条件を微調整するための高度なオプションも提供します。

于 2012-11-17T04:39:36.863 に答える