提取子字符串直到“?”与子()

Extraxt substring until "?" with sub()

所以,我想像这样提取字符串的子字符串 mystr <- "aa/bb/cc?rest"

我找到了 sub() 函数但是执行的是 sub("?.*", "", mystr) returns "" 而不是 "aa/bb/cc".

为什么?

原因很明显,因为 ? 是一个特殊字符,但使用反引号或 "\?" 不能解决这个问题。

转义需要双\:

> mystr <- "aa/bb/cc?rest"
> sub("\?.*", "", mystr)
Error: '\?' is an unrecognized escape in character string starting ""\?"
> sub("\?.*", "", mystr)
[1] "aa/bb/cc"