Как мне узнать, все ли буквы алфавита в строке (>> 2 символа) являются верхним регистром? В конечном счете, я пытаюсь отфильтровать названия заголовков разделов, которые являются строками в моем наборе данных. Поэтому, если заголовок главы "ARYA", я хочу, чтобы это было обнаружено так же, как "THE QUEEN HAND".
Здесь то, что я пытаюсь, но не работает:
library(dplyr)
library(stringr)
str_detect("THE QUEENS HAND", "^[[:upper:]]{2,}+$")
#> FALSE
Требования, которые мне нужны:
- Количество символов> = 2, потому что я в конечном счете использую это, чтобы отфильтровать названия разделов, но иногда есть строка, где слово "Я", но это не глава - это просто слово. Хотя это можно было отфильтровать в другом месте
- Обнаружены только алфавитные символы или апострофы. Иногда строка "...", которую я не хочу обнаружить. Однако, если я использую решение
toupper(x) == (x)
, это будет обнаружено рядом с чем-то вроде "THE QUEEN HAND". Я также пытаюсь избавиться от чего-либо с восклицательными знаками или периодами, например "ОСТАНОВИТЕ ЭТО!".