检查字符串是否包含任何数字

Seb*_*ian 0 string r

我正在搜索正确的表达式来搜索字符串,如果它只包含数字(0-9)或其他任何东西,并返回true/false.

我得到的是:

> teststring <- "012345c6789"
> any(str_detect(teststring,c(letters,LETTERS)))
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

但是这只检查字母,我想要正确的表达式来检查字符串中是否有任何字符.

Col*_*vel 5

您可以尝试不使用正则表达式,只需将其转换为数字即可:

containsOnlyNumbers = function(x) !is.na(as.numeric(x))

str1 <- "012345c6789"
str2 <- "016789"

#> containsOnlyNumbers(str1)
#[1] FALSE
#Warning message:
#In containsOnlyNumbers(str1) : NAs introduced by coercion
#> containsOnlyNumbers(str2)
#[1] TRUE
Run Code Online (Sandbox Code Playgroud)


akr*_*run 5

我们可以使用模式只匹配一个或多个非数字元素([^0-9]+)从start(^)到结尾($)带有的字符串)grepl.

grepl('^[^0-9]+$', teststring)
Run Code Online (Sandbox Code Playgroud)