文本处理 - 检测您是否在Java中的HTML标记内

时间:2011-04-08 22:37:07

标签: java text html-parsing

我有一个程序,可以根据同一文档中没有html信息的信息对html格式的文档进行文本处理。我基本上,在未格式化的文档中找到一个单词或短语,然后在格式化的文档中找到相应的单词,并使用HTML标签改变单词或短语的外观,使其突出(例如加粗或更改其颜色)。

这是我的问题。偶尔,我想对可能是html标签一部分的单词或短语进行格式化(例如,我可能想对单词“font”进行一些格式化,但前提是不是html标签内的单词) 。有没有一种简单的方法可以检测字符串是否是文本块中html标记的一部分?

顺便说一句,我不能只删除文档中的html标签并对剩余的文本进行处理,因为我需要在结果中保留html。我需要添加到现有的html,但我需要可靠地区分作为标记的一部分的字符串和不是的字符串。

有什么想法吗?

谢谢,

埃利奥特

3 个答案:

答案 0 :(得分:1)

你可以做一些事情

  • 为您正在做的事情写一个正则表达式。您可以在Google上找到大量预先编写的预制文件
  • 查找要解析文档的库(例如http://htmlparser.sourceforge.net/)并仅替换文本

第一种可能是最快最简单的,但第二种更可靠。

答案 1 :(得分:0)

使用以下正则表达式代码检测它是否包含HTML标记:“\<。*?\>”

并且here您可以学习如何在Java代码中有效地使用正则表达式。 快乐的编码;)

答案 2 :(得分:0)

如果您正确地解析了DOM,那么您拥有的是什么。然后询问包含当前标记的super标记,并继续这样做,如果这不是标记,则表示您正在寻找。

如果您使用某些自定义搜索或正则表达式来解析html,请检查此问题的最佳答案:

RegEx match open tags except XHTML self-contained tags (由于某种原因,它有+4000支票)