使用gsub函数仅保留字符串的第一部分

3
在R中,我有像这样的字符串:
test <- 'ZYG11B|79699'

我希望只保留'ZYG11B'

我的最佳尝试:

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

但是返回
> [1] ""

我该怎么做?

3
简单地将 | 转义,即使用 gsub("\\|.*$", "", test)。这行代码的作用是将字符串中第一个出现的 | 及其后面的所有内容删除。 - Sotos
2个回答

1

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

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

0
我们可以做到
library(stringr)
str_extract(test, "\\w+")
#[1] "ZYG11B"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接