如何提取第一个 space 之前的所有内容?

How to extract everything before the first space?

charvct <- c("amc rebel sst","amc ambassador dpl","amc hornet","amc gremlin" ,"amc 1212") 

是我的矢量。

我想得到结果

"amc","amc","amc","amc","amc".

我的密码是:

y <- gsub("amc*[A-z][0-9]","amc",charvct)

但输出与输入相同。

我们可以匹配 'amc' 后跟单词边界 (\b)) 后跟零个或多个 (*) 字母数字字符以及 space ([[:alnum:] ]) 并将其替换为 "amc"

sub("amc\b[[:alnum:] ]*","amc", charvct)
#[1] "amc" "amc" "amc" "amc" "amc"

或将 'amc' 捕获为一个组 ((amc)) 并在替换中我们提供反向引用 (\1)

sub("(amc)\b[[:alnum:] ]*","\1", charvct)

根据注释中的向量,我们匹配一个或多个标点符号以及 space ([[:punct:] ]+) 后跟字符,直到字符串结尾 (.*)并将其替换为空白 ("").

sub("[[:punct:] ]+.*", '', v1)
#[1] "amc" "bcd" "xyz" "amc" "amc" "dfz"

数据

v1 <- c("amc rebel sst","bcd ambassador dpl","xyz hornet",
                             "amc gremlin" ,"amc 1212(a)" ,"dfz+2")