2015-10-18 39 views
4

我想替換字符串中的某個字符,但是由於此模式是反覆出現的,我認爲如果甚至有可能使用RegExes來迭代替換。 例如,考慮的鏈接http://www.bbc.co.uk/food/ingredients/by/letter/a如何使用R中的RegEx替換字符串中的字符

我想替換最後一個'A' 與 'B',然後是 'C', 'd' 和等上,直到 'Z'反覆。 這一工作正則表達式很簡單,只要:

http:\/\/www\.bbc\.co\.uk\/food\/ingredients\/by\/letter\/[a-z]

這將驗證字符串,但我想自動化鏈接生成的過程。我對'R'很陌生,我想知道這樣的事情是否可行。

回答

3

您可以創建的鏈接這樣的清單,paste0如下:

l <- paste0("http://www.bbc.co.uk/food/ingredients/by/letter/", letters) 

導致以下列表:

> l 
[1] "http://www.bbc.co.uk/food/ingredients/by/letter/a" 
[2] "http://www.bbc.co.uk/food/ingredients/by/letter/b" 
[3] "http://www.bbc.co.uk/food/ingredients/by/letter/c" 
[4] "http://www.bbc.co.uk/food/ingredients/by/letter/d" 
[5] "http://www.bbc.co.uk/food/ingredients/by/letter/e" 
[6] "http://www.bbc.co.uk/food/ingredients/by/letter/f" 
[7] "http://www.bbc.co.uk/food/ingredients/by/letter/g" 
[8] "http://www.bbc.co.uk/food/ingredients/by/letter/h" 
[9] "http://www.bbc.co.uk/food/ingredients/by/letter/i" 
[10] "http://www.bbc.co.uk/food/ingredients/by/letter/j" 
[11] "http://www.bbc.co.uk/food/ingredients/by/letter/k" 
[12] "http://www.bbc.co.uk/food/ingredients/by/letter/l" 
[13] "http://www.bbc.co.uk/food/ingredients/by/letter/m" 
[14] "http://www.bbc.co.uk/food/ingredients/by/letter/n" 
[15] "http://www.bbc.co.uk/food/ingredients/by/letter/o" 
[16] "http://www.bbc.co.uk/food/ingredients/by/letter/p" 
[17] "http://www.bbc.co.uk/food/ingredients/by/letter/q" 
[18] "http://www.bbc.co.uk/food/ingredients/by/letter/r" 
[19] "http://www.bbc.co.uk/food/ingredients/by/letter/s" 
[20] "http://www.bbc.co.uk/food/ingredients/by/letter/t" 
[21] "http://www.bbc.co.uk/food/ingredients/by/letter/u" 
[22] "http://www.bbc.co.uk/food/ingredients/by/letter/v" 
[23] "http://www.bbc.co.uk/food/ingredients/by/letter/w" 
[24] "http://www.bbc.co.uk/food/ingredients/by/letter/x" 
[25] "http://www.bbc.co.uk/food/ingredients/by/letter/y" 
[26] "http://www.bbc.co.uk/food/ingredients/by/letter/z" 
+0

作品般的魅力,感謝@Jaap –

3

解壓目錄名稱(即之前的一切/ a)和然後使用內置變量追加每個字母letters

u <- "http://www.bbc.co.uk/food/ingredients/by/letter/a" # input string 
file.path(dirname(u), letters) 

這給這個人物矢量:

[1] "http://www.bbc.co.uk/food/ingredients/by/letter/a" 
[2] "http://www.bbc.co.uk/food/ingredients/by/letter/b" 
[3] "http://www.bbc.co.uk/food/ingredients/by/letter/c" 
[4] "http://www.bbc.co.uk/food/ingredients/by/letter/d" 
[5] "http://www.bbc.co.uk/food/ingredients/by/letter/e" 
[6] "http://www.bbc.co.uk/food/ingredients/by/letter/f" 
[7] "http://www.bbc.co.uk/food/ingredients/by/letter/g" 
[8] "http://www.bbc.co.uk/food/ingredients/by/letter/h" 
[9] "http://www.bbc.co.uk/food/ingredients/by/letter/i" 
[10] "http://www.bbc.co.uk/food/ingredients/by/letter/j" 
[11] "http://www.bbc.co.uk/food/ingredients/by/letter/k" 
[12] "http://www.bbc.co.uk/food/ingredients/by/letter/l" 
[13] "http://www.bbc.co.uk/food/ingredients/by/letter/m" 
[14] "http://www.bbc.co.uk/food/ingredients/by/letter/n" 
[15] "http://www.bbc.co.uk/food/ingredients/by/letter/o" 
[16] "http://www.bbc.co.uk/food/ingredients/by/letter/p" 
[17] "http://www.bbc.co.uk/food/ingredients/by/letter/q" 
[18] "http://www.bbc.co.uk/food/ingredients/by/letter/r" 
[19] "http://www.bbc.co.uk/food/ingredients/by/letter/s" 
[20] "http://www.bbc.co.uk/food/ingredients/by/letter/t" 
[21] "http://www.bbc.co.uk/food/ingredients/by/letter/u" 
[22] "http://www.bbc.co.uk/food/ingredients/by/letter/v" 
[23] "http://www.bbc.co.uk/food/ingredients/by/letter/w" 
[24] "http://www.bbc.co.uk/food/ingredients/by/letter/x" 
[25] "http://www.bbc.co.uk/food/ingredients/by/letter/y" 
[26] "http://www.bbc.co.uk/food/ingredients/by/letter/z" 
+0

欣賞的幫助@ G-格羅騰迪克 –

0

另一種選擇:

library(stringi) 
v <- "http://www.bbc.co.uk/food/ingredients/by/letter/a" 
stri_replace_last(v, letters, regex = "[a-z]") 
相關問題