在我的程序中,我已经下载了一个带有wget的网页,我想在其上提取,只有一个文本字符串。
我应该怎么做(如果它是正确的)清除文件中的html标签只有网页上的文字?
我从来没有在C中使用正则表达式,我不知道这是否是解决这个问题的正确方法。 您能告诉我其他替代品或图书馆,我可以使用吗? 或者,如果我应该使用正则表达式,你可以帮我在C中做这样的替换标记吗?
sed -e 's/<[^>]\+>/ /g' file.html
由于
答案 0 :(得分:4)
Regular expressions aren't suited for parsing HTML.只要您拥有XHTML,就可以保证它是有效的XML,因此您可以使用XML parser library进行解析。
答案 1 :(得分:0)
另一个答案指向最相关的一点,即你不能用正则表达式解析HTML ...
这表明你的sed脚本也不起作用......
<a href="http://localhost/" title="Click < link >">A link</a>
以上是有效的XML,更不用说快速而宽松的HTML,因为结束>
在XML中无效... ...您只需要转义&
和<
...它也是逃避>
的最佳做法