如果有一個向量x就是如何在特定模式後刪除字符串或數字?
x <- c('/name12/?ad_2','/name13/?ad_3','/name14/?ad_4')
有沒有辦法刪除「ad_」後,下面的數字?
所以轉換的X顯示爲
'/name12/?ad_' '/name13/?ad_' '/name14/?ad_'
我試圖用gsub
功能,但它並沒有因爲數字其次是「名」的工作。
如果有一個向量x就是如何在特定模式後刪除字符串或數字?
x <- c('/name12/?ad_2','/name13/?ad_3','/name14/?ad_4')
有沒有辦法刪除「ad_」後,下面的數字?
所以轉換的X顯示爲
'/name12/?ad_' '/name13/?ad_' '/name14/?ad_'
我試圖用gsub
功能,但它並沒有因爲數字其次是「名」的工作。
您可以使用帶有sub
的正則表達式(因爲您執行單個搜索和替換,您不需要gsub
)並根據需要在結果中包含或排除的內容使用模式。
您可以使用"(\\?ad_)[0-9]+$"
刪除?ad_
+數字與"\\1"
替換恢復?ad_
值,或者只是匹配_
,然後數字(與_
替換)。
見演示代碼:
> x <- c('/name12/?ad_2','/name13/?ad_3','/name14/?ad_4')
> sub("(\\?ad_)[0-9]+$", "\\1", x)
[1] "/name12/?ad_" "/name13/?ad_" "/name14/?ad_"
> sub("_[0-9]+$", "_", x)
[1] "/name12/?ad_" "/name13/?ad_" "/name14/?ad_"
圖案的詳細資料:
_
- 匹配下劃線[0-9]+
- 1以上(由於量詞匹配一個或多個匹配項,儘可能多)$
- 字符串的結尾。由於前綴是它們全部具有相同的長度:
x <- c('/name12/?ad_2','/name13/?ad_3','/name14/?ad_4')
substr(x,1,12)
[1]? 「/ name12/ad_」 「/ name13/ad_」 「?/ name14/ad_」
否則我會grep
它。
嘗試'gsub(「_ \\ d」,「_」,x)' –
當您嘗試使用'gsub'功能時,您做了什麼? –