R字符串只包含一种字符

use*_*073 5 r stringr

我想检查一个字符串是否只包含一种类型的字符

例如

INPUT: 

str = "AAAAB"
char = "A"

OUTPUT:

str contains only char = FALSE
Run Code Online (Sandbox Code Playgroud)

随着grepl(char,str)其结果是事实,但我希望它是假的.

非常感谢

tal*_*lat 5

如果要检查特定字符(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)


m0n*_*awk 4

您需要使用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)