Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 匹配大写字母和空格_Regex_R - Fatal编程技术网

Regex 匹配大写字母和空格

Regex 匹配大写字母和空格,regex,r,Regex,R,匹配“审计范围”,但不匹配“审计范围” 我知道我可以匹配一个大写的单词,比如“推荐”: 但我如何将某个内容与其中的某个空间相匹配,比如“审计范围”?提前谢谢 grepl("^(\\s*[[:upper:]]+\\s*)*$",c("SCOPE OF AUDIT", "Scope of Audit")) #[1] TRUE FALSE akrun和我的答案在匹配“行为”方面的一个区别是,使用akrun的正则表达式将匹配一个空格字符串,而使用我的正则表达式时,需要至少有1个大写字符加上任意数量的

匹配“审计范围”,但不匹配“审计范围”

我知道我可以匹配一个大写的单词,比如“推荐”:

但我如何将某个内容与其中的某个空间相匹配,比如“审计范围”?提前谢谢

grepl("^(\\s*[[:upper:]]+\\s*)*$",c("SCOPE OF AUDIT", "Scope of Audit"))
#[1]  TRUE FALSE
akrun和我的答案在匹配“行为”方面的一个区别是,使用akrun的正则表达式将匹配一个空格字符串,而使用我的正则表达式时,需要至少有1个大写字符加上任意数量的空格(或者没有)

从这个问题来看,OP在纯空白字符串的情况下会期望什么行为并不十分清楚,但基于他自己的正则表达式尝试(
“^[[:upper:]+$”
),我假设他们希望至少匹配一个大写字符,否则他们就不会选择
+

,您可以尝试

 grepl("^[[:upper:] ]+$", x)
 #[1]  TRUE FALSE FALSE

数据
x您可以使用此正则表达式:

^[\\p{Lu}\\s]+$
在这里
\\p{Lu}
匹配大写字母(Unicode),而
\\s
匹配空格

例如:

grepl("^[\\p{Lu}\\s]+$",c("SCOPE OF AUDIT", "Scope of Audit"), perl = TRUE)
# [1]  TRUE FALSE

正则表达式
\\p{Lu}
也允许您匹配特殊的大写字母,例如,
“À”

您应该更具体一点。您不想匹配任何字母较低的字符串吗?所以,只要试试
!grepl(“[a-z]”,x)
。感谢您展示。(+1). 你知道
\\p{Lt}
是如何工作的吗?。我尝试了
grepl('\\p{Lt}',c('SCOPE','SCOPE','SCOPE'),perl=TRUE)
。它给出all
FALSE
@akrun您可以找到与
\\p{Lt}
匹配的所有字符。
 x <- c("SCOPE OF AUDIT", "Scope of Audit", "SCOPE Of AUDit")
^[\\p{Lu}\\s]+$
grepl("^[\\p{Lu}\\s]+$",c("SCOPE OF AUDIT", "Scope of Audit"), perl = TRUE)
# [1]  TRUE FALSE