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

Ada*_*m_G 1 text r tidytext

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

我不知道为什么,但我无法为 R 得到这个。

akr*_*run 5

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

library(stringr)
str_count(str1, "[[:alnum:]]")
#[1] 13
Run Code Online (Sandbox Code Playgroud)

或者用base Rwithgsub删除[[:punct:]]然后获取字符数nchar

nchar(gsub("[[:punct:]]+", "", str1))
Run Code Online (Sandbox Code Playgroud)

或者对^非字母数字的 ( ) 字符求反,用空白 ( "") 替换并得到nchar

nchar(gsub("[^[:alnum:]]+", "", str1))
#[1] 13
Run Code Online (Sandbox Code Playgroud)

数据

str1 <- "This has 4 words!"
Run Code Online (Sandbox Code Playgroud)