Extract a regular expression match
r, regex
Solution
Use the new stringr package which wraps all the existing regular expression operates in a consistent syntax and adds a few that are missing:
library(stringr)
str_locate("aaa12xxx", "[0-9]+")
# start end
# [1,] 4 5
str_extract("aaa12xxx", "[0-9]+")
# [1] "12"
Problem
I'm trying to extract a number from a string. And do something like `[0-9]+` on the string `"aaa12xxx"` and get `"12"`. I thought it would be something like: ``` > grep("[0-9]+", "aaa12xxx", value=TRUE) [1] "aaa12xxx" ``` And then I figured... ``` > sub("[0-9]+", "\\1", "aaa12xxx") [1] "aaaxxx" ``` But I got some form of response doing: ``` > sub("[0-9]+", "ARGH!", "aaa12xxx") [1] "aaaARGH!xxx" ``` There's a small detail I'm missing.