[R] regexpr virtue

Petr PIKAL petr.pikal at precheza.cz
Thu Jul 30 08:29:16 CEST 2009


Many thanks to you and all others for solutions together with regular 
expressions insights.

Petr

"Chuck Taylor" <ctaylor at tibco.com> napsal dne 29.07.2009 19:45:10:

> Petr,
> 
> Here is a different approach. It, in effect, works from the end of the
> string backwards, rather than from the beginning of the string forwards.
> 
>    substring(x, regexpr("[0-9]+$", x))
> 
> The regular expression "[0-9]+$" finds a string of 1 or more ("+")
> digits ("[0-9]") followed by the end of the line ("$"). The regexpr()
> function returns the position in the string x where that regular
> expression begins. Feed that to substring() and you get the desired
> result. Both substring() and regexpr() work on vectors of strings.
> 
> Best regards,
> Chuck Taylor
> TIBCO Spotfire Seattle
> 
> 
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
> On Behalf Of Petr PIKAL
> Sent: Wednesday, July 29, 2009 6:10 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] regexpr virtue
> 
> Hi all
> 
> I have got something like that (actually those are column names)
> 
> [51] "X19.2.300b...80"          "X19.2.400v...80" "X19.2.400b...80" 
> "X19.2.300v...90"          "X19.2.300b...90" 
> [56] "X19.2.400v...90"          "X19.2..400b..90" "X19.2.300v...100" 
> "X19.2.300b...100"         "X19.2.400v...100" 
> 
> in character vector. I would like to get last n figures from this 
> character vector but my regexpr unerstanding is inferior and I did not 
> succeed. 
> Please, is there anybody who can extract those n digits from end of each
> 
> character string? If there were only 2 digits I could use substr but
> there 
> can be one, two or three digits.
> 
> ...
> 
> Best regards
> Petr




More information about the R-help mailing list