I'd like to use gsub to remove characters from a filename.
In the example below the desired output is 23
digs = "filepath/23-00.xlsx"
I can remove everything before 23 as follows:
gsub("^\\D ", "",digs)
[1] "23-00.xlsx"
or everything after:
gsub("\\-\\d \\.xlsx$","", digs)
[1] "filepath/23"
How do I do both at the same time?
CodePudding user response:
We could use | (OR) i.e. match characters (.*) till the / or (|), match the - followed by characters (.*), replace with blank ("")
gsub(".*/|-.*", "", digs)
[1] "23"
Or just do parse_number
readr::parse_number(digs)
[1] 23
CodePudding user response:
You can just use a sub like
sub("^\\D (\\d ).*", "\\1", digs)
# => [1] "23"
See the R demo. See the regex demo. Details:
^- start of string\D- one or more non-digit chars(\d )- Group 1 (\1refers to this group value): one or more digits.*- any zero or more chars as many as possible.
