R字符串提取模式

R字符串提取模式,r,string,R,String,我有一个关于从字符串中提取字母的问题 例如,在R中有一个向量,如: America, Asia, Europe 我想得到这种格式的所有大写字母,如 AAE或A,A,E 如何使用regmatches和regexpr实现这一点?您可以在此处使用gsub: x <- "America, Asia, Europe" output <- gsub("\\b([A-Z])[a-z]+(?:,\\s*)?", "\\1", x) out

我有一个关于从字符串中提取字母的问题 例如,在R中有一个向量,如:

America, Asia, Europe
我想得到这种格式的所有大写字母,如

AAE
A,A,E


如何使用regmatches和regexpr实现这一点?

您可以在此处使用
gsub

x <- "America, Asia, Europe"
output <- gsub("\\b([A-Z])[a-z]+(?:,\\s*)?", "\\1", x)
output

[1] "AAE"

x一个简单的
gsub

x <- "America, Asia, Europe"
gsub("[^A-Z]","",x)
[1] "AAE"

x如果您确定单词中没有大写字母,只需执行
gsub(“[a-z]+”,“”,x)
非常感谢!是否也可以检查例如字母A是否在新表达式中,例如AAE?我不理解您的后续问题?例如,如果我想检查字母A是否出现在AAE中,或者字母e是否出现在AAEUse中:
grepl(“A”,“AAE”,fixed=TRUE)
您的建议过于简化了。如果一个单词恰好有两个大写字母,例如“南美洲”,会发生什么?您的建议会留下
SA
,这可能不是OP想要的。总是考虑给出一个灵活的解决方案。也可以检查字母A是否在新表达式中。例如AAE?@ ABCXYZ是的,你可以使用<代码> GRPL(“A”,X)< /代码>来检查。@ TimBiegeleisen,OP要求提取所有大写字母。如果OP想要所有的大写字母怎么办?在这种情况下,“南美洲”将返回
SA
,而这正是OP所要求的。
x <- "America, Asia, Europe"
gsub("[^A-Z]","",x)
[1] "AAE"