使用 gsub 只保留我的字符串的第一部分

Use gsub to keep only the first part of my string

在 R 中,我的字符串如下所示:

test <- 'ZYG11B|79699'

我只想保留 'ZYG11B'

我最好的尝试:

gsub ("|.*$", "", test) # should replace everything after '|' by nothing

但是returns

> [1] ""

我应该怎么做?

这是一个受保护的字符,这意味着它应该用方括号括起来或用双斜杠转义:

> gsub('[|].*$','', test)
[1] "ZYG11B"
> gsub('\|.*$','', test)
[1] "ZYG11B"

我们可以做到

library(stringr)
str_extract(test, "\w+")
#[1] "ZYG11B"