2013-02-14 10 views
18

Я работаю в R и у вас проблемы с обратным слэшем. Я пользуюсь библиотекой stringr.Как избежать обратной косой черты в R?

install.packages("stringr", repos='http://cran.us.r-project.org') 
library("stringr") 

Я хотел бы сделать str = str_replace_all(str, "\", "")

Так что я попытался str = str_replace_all(str, "\\", ""), но это не будет работать.

Что мне делать?

+67

Если у вас есть сомнения, продолжайте добавлять косые черты, пока они не будут работать. – joran

+0

Я делаю ошибку. Но я нашел решение с gsub ("([\\])", "", str) –

+1

@joran Этот комментарий имеет больше оборотов, чем все остальное в объединенном потоке. Истинные слова мудрости. – Dason

ответ

16

Я нашел решение, которое работает

str = gsub("([\\])","", str) 
+14

В соответствии с моим комментарием использование '' \\\\ '' как шаблона будет работать (с помощью 'gsub' или' str_replace_all'. – joran

+2

'gsub (" \\ "," ", str, fixed = TRUE) 'также будет работать. Вам просто нужно помнить, что в R,' \\ '- это только один символ. Попробуйте следующее:' x <- "my \\ strin \\ g \\ с \\ слэшем"; печать (x); cat (x) '. – A5C1D2H2I1M1N2O1R2T1

+0

В RE, \\ match \. Поскольку вам нужен scape каждый \ to R, понимайте его как \, вам нужно использовать' gsub ("\\\\", "", str) ' – Rcoster

8

Используйте Hmisc::escapeRegex и Hmisc::escapeBS автоматически ускользает обратные косые черту и другие регулярные выражения специальных символов.

+0

Даже «Hmisc» не позволит вам полностью «escapeBS», потому что в конечном счете BS неизбежно (особенно в программировании и 'rep ('особенно', 2)' in R). – geneorama

Смежные вопросы