使用gsub删除R中的HTML代码

时间:2011-08-14 14:22:27

标签: regex r

我在R中有一部分HTML代码,如下所示:

"</a> <img src=\"images/arrow_orange.gif\" width=\"8\" height=\"12\"> <a href=\"group.php?g=1\">XXXX</a> <img src=\"images/arrow_orange.gif\" width=\"8\" height=\"12\"> <a href=\"category.php?c=100050\">YYYY</a> <img src=\"images/arrow_orange.gif\" width=\"8\" height=\"12\"> <a href=\"category.php?c=100050&brand=Motorola\">ZZZZ</a> <img src=\"images/arrow_orange.gif\" width=\"8\" height=\"12\">AAAA"

我想使用gsub删除不需要的HTML代码,以便输出:

XXXX YYYY ZZZZ AAAA

我试图显示<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1> here但是失败了,为什么?

我怎样才能在R中做到?感谢。

1 个答案:

答案 0 :(得分:1)

我建议您留意@Ramnath和@Iterator的警告并使用解析器代替,但这是我能用你的字符串做的最好的regex

(首先在输入字符串的末尾添加一个缺失)

x <- "</a> <img src=\"images/arrow_orange.gif\" width=\"8\" height=\"12\"> <a href=\"group.php?g=1\">XXXX</a> <img src=\"images/arrow_orange.gif\" width=\"8\" height=\"12\"> <a href=\"category.php?c=100050\">YYYY</a> <img src=\"images/arrow_orange.gif\" width=\"8\" height=\"12\"> <a href=\"category.php?c=100050&brand=Motorola\">ZZZ</a> <img src=\"images/arrow_orange.gif\" width=\"8\" height=\"12\">AAAA</a>"

代码:

x1 <- gsub("<([[:alpha:]][[:alnum:]]*)(.[^>]*)>([.^<]*)", "\\3", x)
x1
[1] "</a>  XXXX</a>  YYYY</a>  ZZZ</a> AAAA</a>"

gsub("</a>", "", x1)
[1] "  XXXX  YYYY  ZZZ AAAA"