去除字符后面的所有内容,但保留该字符。

10

假设我有一个字符串,内容为"45216 Walnut Avenue Mary's Bake Shop"。我想删除单词Avenue后面的所有内容,但是我希望这个单词还能保留。如何实现呢?

我尝试了以下方法,但都没有成功:

a <- "45216 Walnut Avenue Mary's Bake Shop"
a <- gsub("Avenue.*$", "", a)

[1] "45216 Walnut "

你是否想知道r正则表达式是否具有负向后瞻? - stealththeninja
4
使用 a <- gsub("Avenue.*$", "Avenue", a) 进行替换。 - VFreguglia
3
或者 gsub("(?<=大道).*$", "", a, perl = TRUE) - rawr
1
或者 gsub("(.*Avenue)|.", "\\1", a) - rawr
@VictorFreg,可以有人发表答案而不是评论吗? - stealththeninja
请将回答直接写在评论区,而非作为评论。@rawr - stealththeninja
1个回答

18

最直接的方法可能是用()捕获"Avenue",然后截取它后面的所有内容:

可能通过使用()来捕获"Avenue",并删除其后出现的所有内容,是最为直接的方法:
a <- "45216 Walnut Avenue Mary's Bake Shop"
gsub("(Avenue).*", "\\1", a)

你将获得:

## [1] "45216 Walnut Avenue"

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