我有以下文字:
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工具来比较字符串。
答案 0 :(得分:1)
Diff Match和Patch库提供了强大的算法来执行同步纯文本所需的操作。
差异: 比较两个纯文本块并有效地返回差异列表。
匹配度: 给定搜索字符串,在纯文本块中找到其最佳模糊匹配。为准确性和位置加权。
修补 将修补程序列表应用于纯文本。即使基础文本不匹配,也要尽最大努力应用补丁。
目前提供Java,JavaScript,Dart,C ++,C#,Objective C,Lua和Python。无论语言如何,每个库都具有相同的API和相同的功能。所有版本都有全面的测试工具。
有一个Line or word diffs维基页面,描述了如何逐行进行差异化。