仅计算字符串中的字母数字字符

Count only alphanumeric characters in a string

给定字符串 "This has 4 words!" 我只想计算字母和数字。我想排除空格和标点符号。因此,上面的字符串应该 return 13.

我不确定为什么,但我无法获得 R 的这个。

我们可以在str_count中使用[[:alnum:]]来只计算字母和数字

library(stringr)
str_count(str1, "[[:alnum:]]")
#[1] 13

或者在base R中用gsub去掉[[:punct:]]然后用nchar

得到字符数
nchar(gsub("[[:punct:]]+", "", str1))

或否定 (^) 个非字母数字字符,替换为空白 ("") 并得到 nchar

nchar(gsub("[^[:alnum:]]+", "", str1))
#[1] 13

数据

str1 <- "This has 4 words!"