0 votes
1 view
in R Programming by (6.5k points)

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.

1 Answer

0 votes
by (25.3k points)

To extract a regular expression match, you can use the str_extract function from the stringr package as follows:

str_extract("aaa12xxx", "[0-9]+")

[1] "12"

You can also use the str_locate function from the stringr package that locates the position of patterns in a string.i.e.,

 str_locate("aaa12xxx", "[0-9]+")

     start end

[1,]     4   5

Related questions

Welcome to Intellipaat Community. Get your technical queries answered by top developers !