2017-08-17 32 views
2

我必須根據符號和單詞提取R中字符串的部分。我有一個名稱,如用符號和單詞拆分字符串

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

和輸出將是:

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

其中與對應的符號的所有單詞之前被示出。我試過使用strsplit和sub函數,但是我正在努力獲得我想要的輸出。你能幫我麼?謝謝!

+1

請分享你爲了不重複同樣的試了一下一個選項。 –

+0

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

+2

爲什麼有''+ can「'的空間。您是否打算刪除其中一個加號並將其替換爲該空格? 'unlist(strsplit(s,split =「(?<= \\ w)\\ s *(?= [+ - ] +)」,perl = T))'非常接近。 – Abdou

回答

1

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

結果

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

無符號

如果你只想要的話(無符號),這樣做:

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

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

下面是使用base R

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

謝謝!有用。有沒有什麼網站可以提供一個很好的例子,說明如何編寫我在R中尋找的模式? –