On Mon, 11 Feb 2019 15:01:16 -0500 (EST) Bernard McGarvey <mcgarvey.bern...@comcast.net> wrote:
> Now I try to split it using > > > str_split(Fname1,"\\") > > > but this returns an error > > > Error in stri_split_regex(string, pattern, n = n, simplify = > simplify, : Unrecognized backslash escape sequence in pattern. > (U_REGEX_BAD_ESCAPE_SEQUENCE) This happens because the second parameter of str_split is by default a regular expression, and a backslash has a special meaning in regular expressions: when preceding other characters, it may change the way they are interpreted. (For example, w means a literal "w" character, while \w means "any alphanumeric character". On the other hand, [ starts a character group, but \[ means just an opening square bracket.) See ?regex for more info on that. Since you want a literal backslash, you need to escape it with another backslash: \\ But to write a string literal of a double-backslash in R, you need to escape both backslash characters, each with their own backslash: "\\\\" ## fname <- "D:\\Data\\OneDrive\\ISTA Documents\\QT_App\\QT Analysis Input Data Example WorkBook.xlsx" ## message("\\\\") \\ ## str_split(fname, "\\\\") [[1]] [1] "D:" [2] "Data" [3] "OneDrive" [4] "ISTA Documents" [5] "QT_App" [6] "QT AnalysisInput Data Example WorkBook.xlsx" You can also avoid all layers of the backslash hell (except the first) if you choose to split by fixed strings instead of regular expressions by using stringr::fixed: ## str_split(fname, fixed("\\")) -- Best regards, Ivan ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.