仅包含一种字符类型的R字符串
我想检查字符串是否只包含一种字符类型 比如说仅包含一种字符类型的R字符串,r,stringr,R,Stringr,我想检查字符串是否只包含一种字符类型 比如说 INPUT: str = "AAAAB" char = "A" OUTPUT: str contains only char = FALSE 使用grepl(char,str)结果为TRUE,但我希望它为FALSE 非常感谢您需要为正则表达式使用not运算符,在您的情况下,这将是: > !grepl("[^A]", "AAA") [1] TRUE > !grepl("[^A]", "AAAB") [1] FALSE 使用变量:
INPUT:
str = "AAAAB"
char = "A"
OUTPUT:
str contains only char = FALSE
使用grepl(char,str)
结果为TRUE,但我希望它为FALSE
非常感谢您需要为正则表达式使用
not
运算符,在您的情况下,这将是:
> !grepl("[^A]", "AAA")
[1] TRUE
> !grepl("[^A]", "AAAB")
[1] FALSE
使用变量:
grepl(paste0("[^", char, "]"), srt)
如果要检查特定字符(在
char
中):
str使用gregexpr
char = "A"
str = "AAAA"
length(unlist(gregexpr(char, str))) == nchar(str)
## [1] TRUE
str = "ABAAA"
length(unlist(gregexpr(char, str))) == nchar(str)
## [1] FALSE
您可以使用“stringi”包中的stri_计数
,如下所示:
library(stringi)
stri_count_fixed(str, char) == nchar(str)
# [1] FALSE
另一个选项是使用charToRaw
并检查它是否唯一:
xx <- "AAAAB"
length(unique(charToRaw(xx))) ==1
[1] FALSE
xx如果您的str
是”
,您可能需要一些特殊的逻辑。例如,在这种情况下,将输出TRUE
(!grepl(“[^A]”,“)
),这可能是您想要的,也可能不是您想要的。这不会将countchar=“A”
作为输入
library(stringi)
stri_count_fixed(str, char) == nchar(str)
# [1] FALSE
xx <- "AAAAB"
length(unique(charToRaw(xx))) ==1
[1] FALSE