正则表达式用于去除HTML标签

16 浏览
0 Comments

正则表达式用于去除HTML标签

我有一个HTML的输入:\n

一些文本
另一些文本

\n我想使用正则表达式去除HTML标签,输出结果应该是:\n

一些文本
另一些文本

\n有人能提供用正则表达式如何实现这个功能的建议吗?

0
0 Comments

Regex to strip HTML tags是一个问题,出现的原因是在处理HTML时需要去除HTML标签,而不关心HTML的格式是否正确。解决方法可以使用Jericho Html parser这个HTML解析器,它是一个Java库,可以对HTML文档的部分进行分析和操作,包括处理服务器端标签,并原样输出未识别或无效的HTML。它还提供了高级的HTML表单操作功能。相比之下,Jsoup需要处理格式正确的HTML,因此在处理任意HTML时,Jericho更为优秀。

以下是使用Jericho Html parser进行HTML标签去除的示例代码:

import net.htmlparser.jericho.*;
public class HtmlTagStripper {
   public static String stripHtmlTags(String html) {
      Source source = new Source(html);
      return source.getTextExtractor().toString();
   }
   public static void main(String[] args) {
      String html = "

This is a sample HTML document.

"; String text = stripHtmlTags(html); System.out.println(text); } }

运行以上代码,将会输出:

This is a sample HTML document.

使用Jericho Html parser,我们可以方便地去除HTML标签,而不需要担心HTML的格式是否正确。

0
0 Comments

问题:如何使用正则表达式去除HTML标签?

解决方法:使用HTML解析器,以下是使用Jsoup解析器的示例代码:

String input = "

some text

\n

another text

"; String stripped = Jsoup.parse(input).text(); System.out.println(stripped);

结果:

some text another text

如果要保留换行符:

String input = "

some text

\n

another text

"; for (String line : input.split("\n")) { String stripped = Jsoup.parse(line).text(); System.out.println(stripped); }

结果:

some text
another text

Jsoup还提供了其他优点。使用`select()`方法可以轻松提取HTML文档的特定部分,该方法接受类似于jQuery的CSS选择器。只需要文档在语义上是格式良好的即可。尽管存在自1998年被弃用的``标签,但如果您事先对HTML结构有深入了解,仍然可以做到。

另外,使用Jsoup实际上不仅会删除HTML标签,还会添加空格以分隔元素。因此,文本的字数将大于tinymce编辑器中的HTML文本字数,如果您需要去除标签,这一点需要注意。

参考资料:

- [Pros and cons of leading HTML parsers in Java](https://stackoverflow.com/questions/3152138)

0
0 Comments

正则表达式是一种用于处理文本的强大工具,但在处理HTML标签时,它可能不是最佳选择。上述解决方案可以用于去除HTML标签,但无法处理包含特殊字符的标签,例如包含尖括号或引号的标签。因此,更好的方法是使用Jsoup库来处理HTML标签。

Jsoup是一个用于处理HTML的Java库,它提供了丰富的功能和易于使用的API。要从字符串中删除所有标签,可以使用Jsoup.parse(html).text()方法。这种方法可以确保在处理HTML标签时不会丢失其他文本内容。

在给出的问题中,作者尝试使用正则表达式来去除HTML标签,但发现无法处理包含特殊字符的标签。作者提到了使用Jsoup库的方法,并提供了示例代码Jsoup.parse(html).text()。

还有在处理HTML标签时可能遇到的其他问题,例如标签嵌套、属性值中的特殊字符等。作者建议使用Jsoup库来解决这些问题,因为它是一种更强大且更可靠的方法。

总结起来,对于处理HTML标签,正则表达式可能不是最佳选择。使用Jsoup库可以更好地处理HTML标签,并确保在处理标签时不会丢失其他文本内容。

0