如何删除标签之间的空格或制表,而不是从标签内部删除它,我尝试了gsub但没有成功
gsub("(^>)\\s(^<)", "", x)
给出一个字符串:
"<div class=\"panel\">\n <div class=\"shortcode\">\n\t <div class=\"article-\"> text text text text </div> \n </div>\n </div>"
期望的输出:
<div class=\"panel\"><div class=\"shortcode\"><div class=\"article-\"> text text text text </div></div></div>
答案 0 :(得分:2)
您可以尝试使用look around
gsub("(?<=\\>)(\\s*)(?=\\<)", "", x, perl = TRUE)
## [1] "<div class=\"panel\"><div class=\"shortcode\"><div class=\"article-\"> text text text text </div></div></div>"
答案 1 :(得分:1)
我们可以使用标签之间有\n
这一事实,提供了特别简单的解决方案:
1)如果s
是输入字符串,则:
gsub("\\s*\n\\s*", "", s)
(如果\t
无法像问题那样出现在代码中,那么该模式可以替代地写为" *[\n\t] *"
。)
2)另一种方式是:
paste(sapply(strsplit(s, "\n"), trimws), collapse = "")