微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式 – R中的Grep使用OR和NOT

我在R中有以下向量,我想找到所有的字符串有A和B,但不是其中的数字2。
vec1<-c("A_cont_1","A_cont_12","B_treat_8","AB_cont_22","cont_21_Aa")

以下内容不起作用:

grep("A|B|!2",vec1)

它给了我所有的字符串:

[1] 1 2 3 4 5

这个例子也是如此:

grep("A|B|-2",vec1)

什么是正确的语法?

您可以使用相当简单的正则表达式来执行此操作:
grep("^[^2]*[AB][^2]*$",vec1)

换句话说,这意味着:

> ^匹配字符串的开始> [^ 2] *匹配任何除“2”以外的零或多次> [AB]匹配“A”或“B”> [^ 2] *匹配任何除“2”以外的零或多次> $匹配字符串的末尾

原文地址:https://www.jb51.cc/regex/357459.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐