[R] searchina a pattern in a string

Gabor Grothendieck ggrothendieck at gmail.com
Tue Apr 24 19:48:15 CEST 2012


On Tue, Apr 24, 2012 at 10:52 AM, arunkumar1111 <akpbond007 at gmail.com> wrote:
> I have a long string. i want to sepearate a 10 digit phone no from it.
>
> eg
>
>
> "my no is 9876543210 is personal no and my official no is 123-456-8907. you
> can use any of these"
>
> i want to seperate the 9876543210 and 123-456-8907 from this. therev may be
> many phone nos in the string. how to do it

Try this:

library(gsubfn)

pat <- "\\b\\d{3}-?\\d{3}-?\\d{4}\\b"
strapply(x, pat, c, perl = TRUE, simplify = c)

The last line gives this:
[1] "9876543210"   "123-456-8907"

If its likely that any string of digits and minus signs which has 10
to 12 characters is a phone number then you could use this less
accurate but shorter pattern:

pat <- "[-0-9]{10,12}"

-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com



More information about the R-help mailing list