Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

R: Find the last dot in a string

Tags:

regex

r

In R, is there a better/simpler way than the following of finding the location of the last dot in a string?

x <- "hello.world.123.456" g <- gregexpr(".", x, fixed=TRUE) loc <- g[[1]] loc[length(loc)]  # returns 16 

This finds all the dots in the string and then returns the last one, but it seems rather clumsy. I tried using regular expressions, but didn't get very far.

like image 719
Hong Ooi Avatar asked Mar 07 '11 00:03

Hong Ooi


1 Answers

Does this work for you?

x <- "hello.world.123.456" g <- regexpr("\\.[^\\.]*$", x) g 
  • \. matches a dot
  • [^\.] matches everything but a dot
  • * specifies that the previous expression (everything but a dot) may occur between 0 and unlimited times
  • $ marks the end of the string.

Taking everything together: find a dot that is followed by anything but a dot until the string ends. R requires \ to be escaped, hence \\ in the expression above. See regex101.com to experiment with regex.

like image 72
Vincent Avatar answered Sep 29 '22 13:09

Vincent