2013-02-14 8 views
18

Ich arbeite in R und habe Schwierigkeiten, den Backslash zu umgehen. Ich benutze die Bibliothek stringr.Wie ein Backslash in R zu entkommen?

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

Ich möchte str = str_replace_all(str, "\", "")

So tun, habe ich versucht, str = str_replace_all(str, "\\", "") aber es wird nicht funktionieren.

Was soll ich tun?

+67

Wenn Sie Zweifel haben, fügen Sie solange Schrägstriche hinzu, bis es funktioniert. – joran

+0

Ich mache einen Fehler. Aber ich fand die Lösung mit gsub ("([\\])", "", str) –

+1

@joran Dieser Kommentar hat mehr Upvotes als alles andere im Thread kombiniert. Wahre Worte der Weisheit. – Dason

Antwort

16

fand ich eine Lösung, die

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

Gemäß meinem Kommentar funktioniert die Verwendung von "" \\\\ "' als Muster (mit 'gsub' oder' str_replace_all'. – joran

+2

'gsub (" \\ "," ", str, fixed = TRUE)) "würde auch funktionieren. Sie müssen nur daran denken, dass in R" \\ "nur ein Zeichen ist. Versuchen Sie Folgendes:' x <- "my \\ strin \\ g \\ mit \\ Schrägstrichen"; print (x); cat (x) '. – A5C1D2H2I1M1N2O1R2T1

+0

In RE, \\ match \. Da Sie scape alle benötigen, um es als \ zu verstehen, müssen Sie' gsub ("\\\\", "", str) 'verwenden – Rcoster

8

Verwenden Hmisc::escapeRegex und Hmisc::escapeBS die automatisch entkommt Schrägstriche und andere Regex Sonderzeichen funktioniert.

+0

Nicht einmal 'Hmisc' lässt dich komplett' baseBS', denn schließlich ist BS unausweichlich (besonders in der Programmierung, und 'rep ('besonders', 2)' in R). – geneorama