Given this string:
DNS000001320_309.0/121.0_t0
How would I return everything before the second occurrence of "_"?
DNS000001320_309.0/121.0
I am using R.
Thanks.
The following script:
s <- "DNS000001320_309.0/121.0_t0"
t <- gsub("^([^_]*_[^_]*)_.*$", "\\1", s)
t
will print:
DNS000001320_309.0/121.0
A quick explanation of the regex:
^ # the start of the input
( # start group 1
[^_]* # zero or more chars other than `_`
_ # a literal `_`
[^_]* # zero or more chars other than `_`
) # end group 1
_ # a literal `_`
.* # consume the rest of the string
$ # the end of the input
which is replaced with:
\\1 # whatever is matched in group 1
And if there are less than 2 underscores, the string is not changed.
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