我想检查一个字符串是否只包含一种类型的字符
例如
INPUT:
str = "AAAAB"
char = "A"
OUTPUT:
str contains only char = FALSE
Run Code Online (Sandbox Code Playgroud)
随着grepl(char,str)其结果是事实,但我希望它是假的.
非常感谢
如果要检查特定字符(in char):
str <- "AAAAB"
char = "A"
all(unlist(strsplit(str, "")) == char)
#[1] FALSE
str <- "AAAA"
char = "A"
all(unlist(strsplit(str, "")) == char)
#[1] TRUE
Run Code Online (Sandbox Code Playgroud)
或者,如果要检查字符串是否只包含一个唯一字符(任何一个):
str <- "AAAAB"
length(unique(unlist(strsplit(str, "")))) == 1
#[1] FALSE
str = "AAAA"
length(unique(unlist(strsplit(str, "")))) == 1
#[1] TRUE
Run Code Online (Sandbox Code Playgroud)
您需要使用not正则表达式的运算符,在您的情况下,这将是:
> !grepl("[^A]", "AAA")
[1] TRUE
> !grepl("[^A]", "AAAB")
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
带变量:
grepl(paste0("[^", char, "]"), srt)
Run Code Online (Sandbox Code Playgroud)