在我的程序中,我下载了一个带有 wget 的网页,我想提取它,只有一个文本字符串。
我应该怎么做(如果它是正确的)从文件中清除 html 标签,因为只有网页上的文本?
我从来没有在 C 中使用过正则表达式,我不知道这是否是解决这个问题的正确方法。你能告诉我我可以使用的其他替代品或图书馆吗?或者如果我应该使用正则表达式,你能帮我在 C 中做一个这样的替换标签吗?
sed -e 's/<[^>]\+>/ /g' file.html
谢谢
在我的程序中,我下载了一个带有 wget 的网页,我想提取它,只有一个文本字符串。
我应该怎么做(如果它是正确的)从文件中清除 html 标签,因为只有网页上的文本?
我从来没有在 C 中使用过正则表达式,我不知道这是否是解决这个问题的正确方法。你能告诉我我可以使用的其他替代品或图书馆吗?或者如果我应该使用正则表达式,你能帮我在 C 中做一个这样的替换标签吗?
sed -e 's/<[^>]\+>/ /g' file.html
谢谢
正则表达式不适合解析 HTML。只要您有 XHTML,就可以保证它是有效的 XML,因此您可以使用XML 解析器库来解析它。
另一个答案指向最相关的一点,即您无法使用正则表达式解析 HTML ...
这指出您的 sed 脚本也不起作用......
<a href="http://localhost/" title="Click < link >">A link</a>
以上是有效的 XML,更不用说快速和松散的 HTML,因为关闭>
在 XML 中是有效的未转义...您只需要转义&
并且...这也是转义的<
最佳实践>