2017-08-17 1 views
2

Ich muss Teile einer Zeichenfolge in R basierend auf einem Symbol und einem Wort extrahieren. Ich habe einen Namen wieTeilen Sie eine Zeichenfolge durch ein Zeichen und ein Wort

s <-"++can+you+please-help +me" 

und der Ausgang wäre:

"+ can" "+you" "+please" "-help" "+me" 

wo alle Worte mit dem entsprechenden Symbol vor angezeigt. Ich habe versucht, die strsplit und sub-Funktionen zu verwenden, aber ich habe Mühe, die Ausgabe, die ich will. Kannst du mir bitte helfen? Vielen Dank!

+1

Bitte was Sie versucht, um nicht das gleiche zu wiederholen. –

+0

https://stackoverflow.com/questions/15573887/split-string-with-regex – Olivia

+2

Warum gibt es ein Leerzeichen mit '" + can "'. Wolltest du eines der Pluszeichen entfernen und durch dieses ersetzen? 'unlist (strsplit (s, split =" (? <= \\ w) \\ s * (? = [+ -] +) ", perl = T)) kommt sehr nahe. – Abdou

Antwort

1

library(stringi) 
result = unlist(stri_match_all(regex = "\\W\\w+",str = s)) 

Ergebnis

Do
> result 
[1] "+can" "+you" "+please" "-help" "+me" 

Keine Symbole

Wenn Sie nur die Wörter (keine Symbole) wollen, tun:

result = unlist(stri_match_all(regex = "\\w+",str = s)) 

result 
[1] "can" "you" "please" "help" "me" 
1

Hier ist eine Option base R

regmatches(s, gregexpr("[[:punct:]]\\w+", s))[[1]] 
#[1] "+can" "+you" "+please" "-help" "+me"  
+0

Danke! Es klappt. Gibt es eine Website, auf der ich eine schöne Erklärung und gute Beispiele dafür habe, wie ich die Muster schreiben kann, nach denen ich in R suche? –

Verwandte Themen