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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With