【问题标题】:Removing HTML code in R using gsub使用 gsub 删除 R 中的 HTML 代码
【发布时间】:2011-08-14 14:22:27
【问题描述】:

我在 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

我尝试了&lt;([A-Z][A-Z0-9]*)\b[^&gt;]*&gt;(.*?)&lt;/\1&gt;,如图所示here,但失败了,为什么?

我如何在 R 中做到这一点?谢谢。

【问题讨论】:

标签: regex r


【解决方案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"

【讨论】:

  • 没有perl = TRUE?如果我不在我的 R 正则表达式函数中使用它,我总是觉得我的生活很危险。
  • 遗憾的是我不是 perl 一代,所以我总是使用perl=FALSE。个人喜好,我想...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 2021-10-05
  • 1970-01-01
相关资源
最近更新 更多