gpt4 book ai didi

正则表达式检测是否所有字母字符都是大写

转载 作者:行者123 更新时间:2023-12-03 15:07:11 28 4
gpt4 key购买 nike

我将如何检测字符串(> = 2 个字符)中的所有字母字符是否都是大写?最终,我试图过滤掉章节标题名称,即我的数据集中的行。因此,如果章节标题是“ARYA”,我希望检测到它,与“女王之手”相同。

这是我正在尝试但不起作用的方法:

library(dplyr)
library(stringr)

str_detect("THE QUEEN’S HAND", "^[[:upper:]]{2,}+$")
#> FALSE

我需要的要求:
  • 字符数 >= 2 因为我最终是用它来过滤章节名称,但有时会有一行中的单词是“I”,但这不是章节——它只是一个单词。虽然这可以在不同的点过滤
  • 仅检测到字母字符或撇号。有时行是“...”,我不想检测到。但是,如果我使用 toupper(x) == (x)解决方案,这将与“女王之手”之类的东西一起被检测到。我也试图摆脱任何带有感叹号或句号的东西,比如“停止这个!”
  • 最佳答案

    反转你的逻辑

    all alphabetic characters are upper case.



    是相同的

    not a single alphabetic character is lower case.



    代码

    如果您真的想为此任务使用正则表达式,您只需要编写:
    ! str_detect("THE QUEEN’S HAND", "[[:lower:]]")

    你可以测试一下 here .

    如果要考虑字符串长度,可以添加 logical OR :
    nchar(str) < 2 || ! str_detect(str, "[[:lower:]]")

    你可以测试一下 here .

    关于正则表达式检测是否所有字母字符都是大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50479295/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com