是否有更简单的方法来匹配整个正则表达式模式?例如,要检查给定的字符串是否大写以下两种方法,但看起来太复杂。检查stringr我发现没有更简单的解决方案的迹象。检查字符串在R中是否大写
方法1:
isUpperMethod1 <- function(s) {
return (all(grepl("[[:upper:]]", strsplit(s, "")[[1]])))
}
方法2:
isUpperMethod2 <- function(s) {
m = regexpr("[[:upper:]]+", s)
return (regmatches(s, m) == s)
}
我故意省略空,NA,NULL字符串的处理,以避免膨胀的代码。
大写模式可以概括为任意的正则表达式模式(或字符集)。
我发现上述两种解决方案都没有问题,只是它们似乎对于解决的问题过于复杂。
单曲== TOUPPER(S)'? – Justin
我想将解决方案推广到更复杂的模式。 – topchef
为什么不''grepl(“^ [[:upper:]] + $”,s)'? –