[英]How to replace a character in a string using RegEx in R
我正在嘗試替換字符串中的某個字符但是由於這種模式反復發生,我曾想過如果可能的話,使用RegExes迭代替換它。 例如,請考慮鏈接http://www.bbc.co.uk/food/ingredients/by/letter/a
我想用'b'替換最后的'a',然后用'c','d'替換,直到'z'迭代。 使用RegEx可以很簡單:
http:\\/\\/www\\.bbc\\.co\\.uk\\/food\\/ingredients\\/by\\/letter\\/[az]
這將驗證字符串,但我想自動化鏈接生成過程。 我對'R'很新,我想知道這樣的事情是否可行。
您可以使用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"
提取目錄名稱(即/ a之前的所有內容),然后使用內置變量letters
附加每個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"
另外一個選項:
library(stringi)
v <- "http://www.bbc.co.uk/food/ingredients/by/letter/a"
stri_replace_last(v, letters, regex = "[a-z]")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.