从R中的字符串中间提取特定字符

Extracting specific characters from middle of string in R

我有这样的东西

st1 <- "psi-mi:pcgf1_human(display_long)|uniprotkb:RING finger protein 68(gene name synonym)|uniprotkb:Nervous system Polycomb-1(gene name synonym)|uniprotkb:PCGF1(gene name)|psi-mi:PCGF1(display_short)|uniprotkb:NSPC1(gene name synonym)|uniprotkb:RNF68(gene name synonym)"

我的预期输出

"PCGF1"

我希望字符出现在(基因名称)之前,即 PCGF1

我们可以尝试使用 sub():

name <- sub(".*:([^:]*?)\(gene name\).*", "\1", st1)

此处演示:

Rextester