是否有更简单的方法来匹配正则表达式模式的整体?例如,要检查给定字符串是否大写,以下2种方法似乎太复杂。检查stringr我也没有发现更简单的解决方案。
方法一:
isUpperMethod1 <- function(s) {
return (all(grepl("[[:upper:]]", strsplit(s, "")[[1]])))
}
字符串
方法二:
isUpperMethod2 <- function(s) {
m = regexpr("[[:upper:]]+", s)
return (regmatches(s, m) == s)
}
型
我故意省略了对空、NA、NULL字符串的处理,以避免代码臃肿。
大写模式可以推广到任意正则表达式模式(或字符集)。
我看不出以上两种解决方案有什么问题,只是它们对于解决的问题来说似乎过于复杂。
3条答案
按热度按时间k5ifujac1#
可以使用
^
和$
模式来匹配字符串的开头和结尾字符串
8tntrjer2#
为什么不使用“toupper”函数测试转换为大写字母时单词是否与其本身相同呢?
字符串
将为
TRUE
c9x0cxw03#
如果你更喜欢使用
tidyverse
,下面是使用stringr
的版本:字符串