返回REGEX找到的非字母数字字符

时间:2016-09-22 11:49:05

标签: r regex

查找并返回包含非字母数字字符的单词没有问题,但我想要做的是返回找到的非字母数字字符。例如:

a <- c("hello?", "goodbye","hi!")
grep("[^[:alnum:]]", a, value=TRUE)

返回:

[1] "hello?" "hi!"

但我想回归的是:

[1] "?" "!"

有什么想法?谢谢!

编辑:我喜欢这个...两个用户响应,四种不同的方式来完成它。我学到了很多东西。谢谢!

1 个答案:

答案 0 :(得分:3)

我们可以使用import typing class A(object): pass class B(A): pass def register(cls: typing.Type[A]): assert issubclass(cls, A) register(A) register(B) 通过匹配模式(gsub - 表示一个或多个非标点字符)来删除字母数字字符,并将其替换为空格([^[:punct:]]+)。我们使用""nzchar删除空白。

setdiff

或其他选项setdiff(gsub("[^[:punct:]]+", "", a), "") #[1] "?" "!" 来自str_extract

stringr