2017-02-05 1 views
0

Ich habe eine Zeichenfolge. Ich möchte (a) "/" in Brüchen halten, (b) Leerzeichen um "/" einfügen, die zwischen Wörtern liegen, und (c) alle anderen "/" entfernen.Wie entfernt man Zeichenketten mit Ausnahmen in R?

s = "/// ///1/2 111/222 a/b abc/abc a/b/// ///" 

Das Ergebnis sollte wie folgt sein.

s = "1/2 111/222 a b abc abc a b" 

Ich habe ein paar Dinge ausprobiert. Ich kann nicht alles richtig machen.

Antwort

2

Ich bin kein Regex-Experte, aber das scheint an Ihrem Beispiel zu funktionieren.

s = "/// ///1/2 111/222 a/b abc/abc a/b/// ///" 

i <- gsub("/{2,}|/\\s", "", s) 
i <- trimws(gsub("([[:alpha:]]{1,})(/)([[:alpha:]]{1,})", "\\1 \\3", i)) 
i <- gsub("\\s{2,}", " ", i) 

identical(i, "1/2 111/222 a b abc abc a b") 

[1] TRUE 
Verwandte Themen