4

I am trying to replace a certain character in string but as this pattern is recurring I have thought to replace this iteratively using RegExes if it's even possible. For example consider a link http://www.bbc.co.uk/food/ingredients/by/letter/a

I want to replace the last 'a' with 'b', then a 'c', a 'd' and so-on till 'z' iteratively. The RegEx to work with this is as simple as:

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

this would validate the string but I'd like to automate the process of link generation. I am quite new to 'R' and I would like to know if something like this is possible.

3 Answers 3

3

You can create such a list of links as follows with paste0:

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

which results in the following list:

> 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"
Sign up to request clarification or add additional context in comments.

Comments

3

Extract the directory name (i.e. everything before /a) and then append each letter using the built-in variable letters:

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

which gives this character vector:

 [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"

1 Comment

appreciate the help @g-grothendieck
0

Another option:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.