【问题标题】:Regex to remove white space between tags in gsub R正则表达式删除 gsub R 中标签之间的空格
【发布时间】:2016-01-10 14:32:19
【问题描述】:

如何删除标签之间的空格或制表符,而不从标签内部删除,我尝试了 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>

【问题讨论】:

    标签: r gsub


    【解决方案1】:

    您可以尝试使用look around

    gsub("(?<=\\>)(\\s*)(?=\\<)", "", x, perl = TRUE)
    ## [1] "<div class=\"panel\"><div class=\"shortcode\"><div class=\"article-\"> text text text text </div></div></div>"
    

    【讨论】:

      【解决方案2】:

      我们可以利用标签之间有\n这一事实给出特别简单的解决方案:

      1)如果s是输入字符串,那么:

      gsub("\\s*\n\\s*", "", s)
      

      (如果\t 不能像问题中的情况那样出现在标签中,那么该模式也可以写成" *[\n\t] *"。)

      2)另一种方式是:

      paste(sapply(strsplit(s, "\n"), trimws), collapse = "")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多