我有一个字符串的四个条件,但只有三个必须完成。
条件: * 至少有一个大写字母 *至少一位数 *至少一封小写字母 *至少有一个标点符号
如何在R中将其写为if语句,如果正确则打印“TRUE”,否则打印“FALSE”?
答案 0 :(得分:1)
S1 <- "Aa1!"
S2 <- "eij20n."
S3 <- "ei20"
myfun <- function(S) {
# digit # uppercase # lowercase #punctuation
sum(grepl("\\d", S), grepl("[A-Z]",S), grepl("[a-z]",S), grepl("[.!?]",S)) >= 3
}
myfun(S1)
# TRUE
myfun(S2)
# TRUE
myfun(S3)
# FALSE
myfun1 <- function(S) {
pattern <- c("\\d", "[A-Z]", "[a-z]", "[.!?]")
sum(sapply(pattern, function(x) grepl(x, S))) >= 3
}