要使用 Jsoup 的正则表达式模式突出显示 HTML 文档中的文本,您可以按照以下步骤操作:
以下是如何在代码中实现此功能的示例:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Highlighter {
public static void main(String[] args) {
String html = "Your HTML string here";
String regex = "Your regular expression here";
Document doc = Jsoup.parse(html);
Elements elements = doc.select("*");
Pattern pattern = Pattern.compile(regex);
for (Element element : elements) {
String text = element.text();
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
String matchedText = matcher.group();
String highlighted = "<mark>" + matchedText + "</mark>";
text = text.replace(matchedText, highlighted);
element.text(""); // Clear the current text
element.html(text); // Set the new text with highlighted parts
}
}
System.out.println(doc.toString());
}
}
请将“此处的 HTML 字符串”替换为您的实际 HTML 内容,并将“此处的正则表达式”替换为您的实际正则表达式。此代码将查找与正则表达式匹配的文本并将其包装在标签中。请务必彻底测试此代码,以确保其按照您的特定用例的预期工作并维护有效的 DOM 结构。请记住,使用正则表达式操作 HTML 可能很棘手,因此仔细处理边缘情况和嵌套元素非常重要。