grep中

时间:2017-05-15 19:22:52

标签: r regex

我试图在某些文本中寻找基因符号,为此我试图建立一个匹配基因符号的模式(它们一起使用三个或更多个大写字母)。我尝试了这个,但它没有用。

TW2 <- text_words [grep ("b\[[:upper:]]b\", text_words) ]

1 个答案:

答案 0 :(得分:2)

您可以使用

add_test

请参阅Documentation

模式匹配:

  • add_test - 字边界
  • text_words <- "GHJ GJKGKJ HHKKK J777 JJ8JJJJ" TW2 <- unlist(regmatches(text_words, gregexpr("\\b[[:upper:]]{3,}\\b", text_words))) TW2 ## => [1] "GHJ" "GJKGKJ" "HHKKK" - 3个或更多大写字母
  • \\b - 一个单词边界。

如果您有一个带有字符串的向量,您需要完全针对该模式进行测试,请使用

[[:upper:]]{3,}

这里,单词边界被替换为锚点,\\b替换为字符串的开头,text_words <- c("GHJ","GJKGKJ","HHKKK","J777","JJ8JJJJ") TW2 <- grep("^[[:upper:]]{3,}$", text_words, value=TRUE) TW2 ## => [1] "GHJ" "GJKGKJ" "HHKKK" 替换为字符串的结尾。请参阅R demo online