我有以下數據如何識別沒有英文字母,數字和「_」的字符串並替換剩下的字符?
s <- c("コハニー", "Cat", "Blue", "زبان","D-1")
我希望排除那些沒有在英文字母和喜歡的東西「ABC」替換他們的數據。所以我理想輸出是
"ABC" "Cat" "Blue" "ABC" "D-1"
我用下面的代碼,但它無法識別_
和-
。如何在Regex中澄清_
和-
?
s[!grepl('^[A-Za-z0-9_]+$', s)] <- 'ABC'
這給了我:
ABC" "Cat" "Blue" "ABC" "ABC"
小注意:在某些情況下,你不需要加倍\逃避 - 和_就像這裏:s [!grepl('^ [[:alnum:] _-] + $',s)] < - '' – GlennFriesen
謝謝,我沒有意識到這一點。剛剛更新了答案 – austensen
本來會添加「[[:punct:]」以保留所有ASCII標點符號。 –