2016-01-10 84 views
2

如何刪除標籤之間的空白或製表,沒有從標籤中刪除它,我試圖GSUB但沒成功正則表達式來去除標籤之間的空白在gsub函數[R

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> 

回答

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)如果s是輸入字符串,那麼:

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

(如果\t不能標記內出現是在問題的情況下,則模式可以交替。被寫爲" *[\n\t] *"

2)另一種方法是:

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