【问题标题】:Text Processing - Detecting if you are inside an HTML tag in Java文本处理 - 检测您是否在 Java 中的 HTML 标记内
【发布时间】:2011-04-08 22:37:06
【问题描述】:

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

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

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

有什么想法吗?

谢谢,

艾略特

【问题讨论】:

    标签: java text html-parsing


    【解决方案1】:

    你可以做一些事情

    • 为你正在做的事情写一个正则表达式。您可以在 Google 上找到很多预先编写好的内容
    • 找到一个库来解析文档(例如,http://htmlparser.sourceforge.net/)并且只替换文本

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

    【讨论】:

      【解决方案2】:

      使用以下正则表达式代码来检测它是否有 HTML 标签:“\<.>”

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

      【讨论】:

      • 你显然从未见过the highest-upvoted answer ever
      • @Mike Daniels:不,但我现在正在查看它;)感谢您的指点,这对我也应该派上用场。
      【解决方案3】:

      如果你已经解析了 DOM,你有什么,如果你做对了。然后询问包含当前标签的super 标签,如果那不是您要查找的标签,请继续这样做。

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

      RegEx match open tags except XHTML self-contained tags(它有 +4000 的支持是有原因的)

      【讨论】:

        猜你喜欢
        • 2014-04-25
        • 2011-11-07
        • 2021-10-06
        • 1970-01-01
        • 2011-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多