我必須根據符號和單詞提取R中字符串的部分。我有一個名稱,如用符號和單詞拆分字符串
s <-"++can+you+please-help +me"
和輸出將是:
"+ can" "+you" "+please" "-help" "+me"
其中與對應的符號的所有單詞之前被示出。我試過使用strsplit和sub函數,但是我正在努力獲得我想要的輸出。你能幫我麼?謝謝!
我必須根據符號和單詞提取R中字符串的部分。我有一個名稱,如用符號和單詞拆分字符串
s <-"++can+you+please-help +me"
和輸出將是:
"+ can" "+you" "+please" "-help" "+me"
其中與對應的符號的所有單詞之前被示出。我試過使用strsplit和sub函數,但是我正在努力獲得我想要的輸出。你能幫我麼?謝謝!
做
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"
下面是使用base R
regmatches(s, gregexpr("[[:punct:]]\\w+", s))[[1]]
#[1] "+can" "+you" "+please" "-help" "+me"
謝謝!有用。有沒有什麼網站可以提供一個很好的例子,說明如何編寫我在R中尋找的模式? –
請分享你爲了不重複同樣的試了一下一個選項。 –
https://stackoverflow.com/questions/15573887/split-string-with-regex – Olivia
爲什麼有''+ can「'的空間。您是否打算刪除其中一個加號並將其替換爲該空格? 'unlist(strsplit(s,split =「(?<= \\ w)\\ s *(?= [+ - ] +)」,perl = T))'非常接近。 – Abdou