正規表現パターン全体を一致させるためのより簡単な方法はありますか?たとえば、指定された文字列が大文字であるかどうかを確認するには、次の2つの方法がありますが、複雑すぎるようです。チェックstringrより簡単な解決策の兆候も見つかりませんでした。
方法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文字列の処理を意図的に省略しています。
大文字のパターンは任意の正規表現パターン(または文字セット)に一般化できます。
上記の両方の解決策で問題は見られませんが、解決された問題に対して過度に複雑に見える点が異なります。
^
および$
パターンを使用して、文字列の最初と最後を一致させることができます
grepl("^[[:upper:]]+$", s)
「toupper」関数を使用して大文字に変換したときに、Wordがそれ自体と同一であるかどうかをテストしてみませんか?
Word1 <- "TEST"
Word1 == toupper(Word1)
TRUE
になります
tidyr
ユニバースに住みたい場合は、stringr
を使用したバージョンを次に示します。
library(stringr)
str_detect(s, "^[:upper:]+$")