我有以下数据如何识别没有英文字母,数字和“_”的字符串并替换剩下的字符?
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标点符号。 –