如何知道Jsoup删除哪个文本?

时间:2014-11-21 13:25:58

标签: java jsoup

我有以下文字:

text<html/>text

并使用Jsoup库来清理html内容中的文本。就像下面的代码一样:

Document clean = new Cleaner(none()).clean(myDirtyDoc);

我要为用户记录错误:Malisious content was specified: "<html/>". 但我不知道如何正确识别Jsoup清洁的界限。

我尝试使用StringUtils.difference(cleaningValue,value),但此方法以另一种方式工作,即文档说:

Compares two Strings, and returns the portion where they differ.
(More precisely, return the remainder of the second String,
starting from where it's different from the first.)

结果它返回如下字符串:<html/>text

很高兴知道可以在java中轻松使用的任何diff工具来比较字符串。

1 个答案:

答案 0 :(得分:1)

google-diff-match-patch

Diff Match和Patch库提供了强大的算法来执行同步纯文本所需的操作。

差异: 比较两个纯文本块并有效地返回差异列表。

匹配度: 给定搜索字符串,在纯文本块中找到其最佳模糊匹配。为准确性和位置加权。

修补 将修补程序列表应用于纯文本。即使基础文本不匹配,也要尽最大努力应用补丁。

目前提供Java,JavaScript,Dart,C ++,C#,Objective C,Lua和Python。无论语言如何,每个库都具有相同的API和相同的功能。所有版本都有全面的测试工具。

有一个Line or word diffs维基页面,描述了如何逐行进行差异化。