定位非alpha或空格的有效方法

时间:2012-11-26 02:26:31

标签: regex r

我想测试一个字符串向量,并确定每个字符串是否包含数字或符号的元素(即我想知道字符串是否只是字母和空格)。我在这里已经解决了,但我想知道是否有一种更有效的方式(在R正则表达式中)。

x <- c("ff d fdf4f", "fve dvgf", "vfev!", "rcvce rc&")
nchar(gsub("[a-zA-Z]|\\s+", "", x)) > 0

2 个答案:

答案 0 :(得分:3)

grepl以及寻找不符合您想要的字符似乎可以正常工作

grepl("[^a-zA-Z[:space:]]", x)

这提供与原始代码相同的输出

> x <- c("ff d fdf4f", "fve dvgf", "vfev!", "rcvce rc&")
> nchar(gsub("[a-zA-Z]|\\s+", "", x)) > 0
[1]  TRUE FALSE  TRUE  TRUE
> grepl("[^a-zA-Z[:space:]]", x)
[1]  TRUE FALSE  TRUE  TRUE

答案 1 :(得分:2)

改为使用grep

grep("[^a-zA-Z\\s]+", x, value=FALSE)