On Aug 15, 2014, at 11:56 AM, Tom Wright <t...@maladmin.com> wrote: > WOW!!! > > What can I say 4 answers in less than 4 minutes. Thank you everyone. If > I can't make it work now I don't deserve to. > > btw. the strsplit approach wouldn't work for me as: > a) I wanted to play with regex and > b) the location isn't consistent.
Tom, If not in the same relative position, is the substring pattern always the same? That is 3 characters, a hyphen, then 3 characters? If so, would any other part of the path follow the same pattern or is it unique? If the pattern is the same and is unique in the path: > gsub(".*([[:alnum:]]{3}-[[:alnum:]]{3}).*", "\\1", x) [1] "S01-012" is another possible alternative and more flexible: y <- "/mnt/AO/AO Data/Another Level/Yet Another Level/S01-012/120824/" > gsub(".*([[:alnum:]]{3}-[[:alnum:]]{3}).*", "\\1", y) [1] "S01-012" z <- "/mnt/AO/AO Data/Another Level/Yet Another Level/S01-012/One More Level/120824/" > gsub(".*([[:alnum:]]{3}-[[:alnum:]]{3}).*", "\\1", z) [1] "S01-012" > > Nice to see email support still works, not everything has moved to > linkedin and stackoverflow. Stackoverflow? ;-) Regards, Marc > > > Thanks again, > Tom > > > On Fri, 2014-08-15 at 12:18 -0400, Tom Wright wrote: >> Hi, >> Can anyone please assist. >> >> given the string >> >>> x<-"/mnt/AO/AO Data/S01-012/120824/" >> >> I would like to extract "S01-012" >> >> require(stringr) >>> str_match(x,"\\/mnt\\/AO\\/AO Data\\/(.+)\\/+") >>> str_match(x,"\\/mnt\\/AO\\/AO Data\\/(\\w+)\\/+") >> >> both nearly work. I expected I would use something like: >>> str_match(x,"\\/mnt\\/AO\\/AO Data\\/([\\w -]+)\\/+") >> >> but I don't seem able to get the square bracket grouping to work >> correctly. Can someone please show me where I am going wrong? >> >> Thanks, >> Tom ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.